【问题标题】:Signal when an item is added or removed to a QListWidget向 QListWidget 添加或删除项目时发出信号
【发布时间】:2015-05-18 18:39:52
【问题描述】:

我根据应用程序中其他地方的用户选择动态地向 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 事件?

【问题讨论】:

    标签: python pyqt signals qlistwidget


    【解决方案1】:

    您需要在小部件中获取隐含的模型对象:

    model = listWidget.model()
    

    这有一个您可以连接的rowsInserted 信号。见http://doc.qt.io/qt-4.8/qabstractlistmodel-members.html

    【讨论】:

      【解决方案2】:

      作为上面回答的补充,连接 your_listWidget 这是一个 QListWidget 以捕获任何添加或删除的行,如下所示:

          your_listWidget.model().rowsInserted.connect(lambda: your_function)
          your_listWidget.model().rowsRemoved.connect(lambda: your_function)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-29
        • 2020-06-18
        • 2014-05-05
        • 1970-01-01
        • 2020-10-17
        • 2023-04-01
        • 1970-01-01
        相关资源
        最近更新 更多