Qt / C ++: signal lorsqu'un QListWidgetItem est vérifié?
-
27-09-2019 - |
Question
Dans ma forme, j'ai un QListWidget
qui contient QListWidgetItems
checkable. Je suis à la recherche d'un moyen de capturer l'événement d'un être QListWidgetItem
cochée / décochée. Je ne vois pas un tel signal existant pour cela, mais peut-être que je me trompe. Ce que je suis en train de faire est en utilisant le signal de QListWidget::itemClicked()
et vérifier la checkState
du QListWidgetItem
, mais ce n'est pas ce que je veux parce que cet événement se produit chaque fois que l'élément est cliqué, non seulement Je suis allé la coche est activé ou désactivé. Quelqu'un peut-il apporter une aide? Merci!
La solution
Apparemment pas un tel signal est fourni, votre meilleur pari est d'utiliser QListWidget::itemChanged(QListWidgetItem* item)
et analyser le résultat item->checkState()
. Cela devrait être une légère amélioration par rapport à l'aide itemClicked
Autres conseils
Une option supplémentaire est d'utiliser votre propre QAbstractListModel
avec un QListView
. Au début, cela n'ajoute un code supplémentaire que vous devez ajouter votre propre code de gestion. Mais vous obtenez un accès de niveau inférieur. Fondamentalement parce que le QListView
demandera votre modèle ce qu'il faut faire. Il relaiera également de retour d'entrée à votre ListModel où vous pouvez brancher en elle.
Sinon, vous pouvez sous-classe QStandardItemModel
et prendre certaines modifications liées à l'évolution de la case à cocher.