向 QListWidget 添加或删除项目时发出信号
Signal when an item is added or removed to a QListWidget
我根据应用程序其他地方的用户选择动态地向 QListWidget 添加和删除项目。向 QListWidget 添加或删除项目时是否会发出信号?我在文档中看到的 signals 没有提及添加或删除的任何内容。其余信号用于与单个项目交互的时间。
当项目添加到我的 QListWidget 时如何通知我?
一个非常简单的例子:
from PyQt4.QtGui import *
import sys
app = QApplication(sys.argv)
listWidget = QListWidget()
for i in range(10):
item = QListWidgetItem("Item %i" % i)
listWidget.addItem(item)
# ^^^ This is what I want a signal on
listWidget.show()
sys.exit(app.exec_())
我可以利用什么信号来捕获那个 addItem
事件?
您需要获取小部件中隐含的模型对象:
model = listWidget.model()
这有一个可以连接的 rowsInserted
信号。参见 http://doc.qt.io/qt-4.8/qabstractlistmodel-members.html
补充上面的回答,连接 your_listWidget 这是一个 QListWidget 来捕获任何添加或删除的行,如下所示:
your_listWidget.model().rowsInserted.connect(lambda: your_function)
your_listWidget.model().rowsRemoved.connect(lambda: your_function)
我根据应用程序其他地方的用户选择动态地向 QListWidget 添加和删除项目。向 QListWidget 添加或删除项目时是否会发出信号?我在文档中看到的 signals 没有提及添加或删除的任何内容。其余信号用于与单个项目交互的时间。
当项目添加到我的 QListWidget 时如何通知我?
一个非常简单的例子:
from PyQt4.QtGui import *
import sys
app = QApplication(sys.argv)
listWidget = QListWidget()
for i in range(10):
item = QListWidgetItem("Item %i" % i)
listWidget.addItem(item)
# ^^^ This is what I want a signal on
listWidget.show()
sys.exit(app.exec_())
我可以利用什么信号来捕获那个 addItem
事件?
您需要获取小部件中隐含的模型对象:
model = listWidget.model()
这有一个可以连接的 rowsInserted
信号。参见 http://doc.qt.io/qt-4.8/qabstractlistmodel-members.html
补充上面的回答,连接 your_listWidget 这是一个 QListWidget 来捕获任何添加或删除的行,如下所示:
your_listWidget.model().rowsInserted.connect(lambda: your_function)
your_listWidget.model().rowsRemoved.connect(lambda: your_function)