Dans la fonction paint de ton delegate, tu lis la valeur de Qt::DisplayRole alors que ton modèle renvoie l'état de la checkbox pour Qt::CheckStateRole.
PS: ligne 82 de ton delegate, il faudra aussi remplacer "if (value==1)" par "if (value == Qt::Checked)" parce que Qt::Checked ne vaut pas 1.
En fait, il n'y a que la fonction paint qui fait vaguement quelque chose, parce que un délégué n'ouvre un éditeur que pour éditer la valeur principale (Qt::DisplayRole/Qt::EditRole) et uniquement si l'élément est éditable (Qt::ItemIsEditable renvoyé par la fonction flags pour l'élément) et qu'en plus l'utilisateur a déclenché l'édition (généralement avec un double-clic).
Comme en plus, à partir du moment où tu renvoies le flag Qt::ItemIsUserCheckable, un QCheckBox est automatiquement ajouté à la case, ta classe Delegue ne fait rien de plus que le comportement standard sans délégué.
Donc, qu'est-ce que ta classe et censée faire de plus ?
En fait cette colonne est alimentée par 0 ou 1. Mais alors que dois-je faire pour la transformer en cases à cocher ?
Je suis sans réponse.
Merci de votre aide.
RL
Problème checkbox avec délégué
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.