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