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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top