Сигнал, когда элемент добавляется или удаляется в QListWidget

Я динамически добавляю и удаляю элементы в QListWidget на основе выбора пользователя в другом месте приложения. Есть ли сигнал, который выдается при добавлении или удалении элементов в QListWidget? В сигналах, которые я вижу в документации, ничего не говорится о добавлении или Удалить. Остальные сигналы предназначены для взаимодействия с отдельными элементами.

Как я могу получать уведомления о добавлении элемента в мой 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?


person NewGuy    schedule 16.03.2015    source источник


Ответы (2)


Вам нужно получить подразумеваемый объект модели в виджете:

model = listWidget.model()

Это сигнал rowsInserted, который вы можете подключить. См. http://doc.qt.io/qt-4.8/qabstractlistmodel-members.html

person mdurant    schedule 16.03.2015

В дополнение к тому, на что был дан ответ выше, подключение your_listWidget, которое является QListWidget, для захвата любого добавления или удаления строк, будет выглядеть так:

    your_listWidget.model().rowsInserted.connect(lambda: your_function)
    your_listWidget.model().rowsRemoved.connect(lambda: your_function)
person Matheus Torquato    schedule 13.08.2020