向 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)