Qt / C ++: Сигнал, когда проверяется QListWidgetItem? - PullRequest
14 голосов
/ 23 ноября 2010

В моей форме есть QListWidget, который содержит проверяемый QListWidgetItems.Я ищу способ запечатлеть событие QListWidgetItem, отмеченное / не отмеченное.Я не вижу такого сигнала для этого, но, возможно, я ошибаюсь.В настоящее время я использую сигнал QListWidget::itemClicked() и проверяю checkState из QListWidgetItem, но это не то, что я хочу, потому что это событие происходит каждый раз, когда нажимается элемент, а не просто ставится галочка.переключены.Кто-нибудь может оказать некоторую помощь?Спасибо!

Ответы [ 2 ]

20 голосов
/ 23 ноября 2010

По-видимому, такой сигнал не предоставляется, лучше всего использовать QListWidget::itemChanged(QListWidgetItem* item) и отсканировать полученный результат item->checkState()Это должно быть небольшое улучшение по сравнению с использованием itemClicked

0 голосов
/ 19 октября 2017

Дополнительным вариантом является использование собственного QAbstractListModel с QListView. Сначала это добавляет некоторый дополнительный код, поскольку вам нужно добавить свой собственный код управления. Но вы получаете доступ более низкого уровня. В основном потому, что QListView спросит вашу модель, что делать. Он также ретранслирует вход обратно в вашу модель списка, где вы можете подключиться к ней.

В качестве альтернативы вы можете создать подкласс QStandardItemModel и получить некоторые правки, связанные с изменением флажка.

...