Qt/C++: сигнал для проверки QListWidgetItem?
в моей форме у меня есть QListWidget
который содержит checkable QListWidgetItems
. Я ищу способ захватить событие QListWidgetItem
будучи checked или unchecked. Я не вижу такого сигнала, существующего для этого, но, возможно, я ошибаюсь. В настоящее время я использую QListWidget::itemClicked()
сигнал и проверка checkState
на QListWidgetItem
, но это не то, что я хочу, потому что это событие происходит в любое время, когда элемент нажат, а не просто переключается галочка. Кто-нибудь может помочь? Спасибо!
2 ответов
по-видимому, такой сигнал не предоставляется, лучше всего использовать QListWidget::itemChanged(QListWidgetItem* item)
, и сканировать полученный item->checkState()
. Это должно быть небольшое улучшение по сравнению с использованием itemClicked
дополнительный вариант-использовать свой собственный QAbstractListModel
с QListView
. Сначала это добавляет дополнительный код, так как вам нужно добавить свой собственный код управления . Но вы получаете доступ на более низкий уровень. В основном, потому что QListView
спросит вашу модель, что делать. Он также будет передавать вход обратно в listmodel, где вы можете подключиться к нему.
в качестве альтернативы вы могли бы подкласс QStandardItemModel
и поймать некоторые изменения, связанные с изменением флажка.