Qt/c ++: sinal para quando um qlistwidgetItEM é verificado?
-
27-09-2019 - |
Pergunta
Na minha forma, eu tenho um QListWidget
que contém verificável QListWidgetItems
. Estou procurando uma maneira de capturar o evento de um QListWidgetItem
sendo verificado/desmarcado. Não vejo nenhum sinal existente para isso, mas talvez eu esteja errado. O que estou fazendo atualmente é usar o QListWidget::itemClicked()
sinalizando e verificando o checkState
do QListWidgetItem
, mas não é isso que eu quero, porque esse evento acontece sempre que o item é clicado, não apenas a marca de seleção é alternada. Alguém pode dar alguma ajuda? Obrigado!
Solução
Aparentemente, esse sinal é fornecido, sua melhor aposta é usar QListWidget::itemChanged(QListWidgetItem* item)
e digitalize o resultante item->checkState()
. Isso deve ser uma ligeira melhora em relação ao uso itemClicked
Outras dicas
Uma opção extra é usar o seu próprio QAbstractListModel
com um QListView
. No começo, isso adiciona algum código extra, pois você precisa adicionar seu próprio código de gerenciamento. Mas você obtém um acesso de nível mais baixo. Basicamente porque o QListView
Vou perguntar ao seu modelo o que fazer. Ele também retransmitirá a entrada de volta ao seu ListModel, onde você pode conectar -se a ele.
Alternativamente, você pode subclasse QStandardItemModel
e pegue certas edições relacionadas à alteração da caixa de seleção.