我根据应用程序中其他位置的用户选择动态添加和删除项目到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
事件?
答案 0 :(得分:3)
您需要掌握窗口小部件中隐含的模型对象:
model = listWidget.model()
这有一个rowsInserted
信号,您可以连接。见http://doc.qt.io/qt-4.8/qabstractlistmodel-members.html
答案 1 :(得分:2)
对上面回答的内容进行补充,将your_listWidget(它是一个QListWidget)捕获任何行的添加或删除,如下所示:
your_listWidget.model().rowsInserted.connect(lambda: your_function)
your_listWidget.model().rowsRemoved.connect(lambda: your_function)