将项目添加或移除到QListWidget时发出信号

时间:2015-03-16 15:15:28

标签: python pyqt signals 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事件?

2 个答案:

答案 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)