Bonjour,
Je sais que certains messages proche de celui-ci ont déjà été postés mais il y a vraiment un truc que je ne comprends pas...
Ce que je souhaite faire est une représentation de mes données dans plusieurs arbres... Dont un doit afficher des checkboxes.
J'ai donc créé un modèle (MyTreeModel) dérivé de QAbstractItemModel qui affiche correctement mes données dans un QTreeView.
L'étape suivante est d'afficher dans un second QTreeView, les mêmes données mais avec des checkboxes pour chaque item.
J'ai donc dérivé mon modèle MyTreeModel pour créer un modèle MyCheckableTreeModel qui redéfini uniquement la méthode "flags" de cette manière :
Désormais, j'ai bien des checkboxes qui s'affichent mais en état "Qt:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Qt::ItemFlags MyCheckableTreeModel ::flags (const QModelIndex& index) const { if (index.isValid ()) return MyTreeModel ::flags (index) | Qt::ItemIsUserCheckable; return MyTreeModel ::flags (index); }artiallyChecked" et quand je clique dessus, rien ne se passe...
J'ai bien vu dans des forums qu'il fallait utiliser la méthode "setData" avec "Qt::CheckStateRole" pour donner la valeur de la checkbox mais je ne comprends pas où je dois appeler cette méthode...
Surtout que la méthode demande en paramètre un "QModelIndex"... Cependant, hors de mon modèle je ne connais pas les valeurs des QModelIndex...
De plus, je ne veux pas utiliser de QTreeWidget ni de QStandardItemModel & QStandardItem, puisqu'ils feront une copie de mes données, et je perdrais tout le bénéfice de mon modèle...
Bref je suis un peu perdu...
Est-ce que quelqu'un aurait quelques explications à ce sujet ? (J'espère avoir été assez clair...)
Merci d'avance !
Partager