QTreeWidgetItem et relation parent-enfants
Bonjour,
J'ai un arbre (tree) avec plusieurs items (parents-enfants), chacun étant sélectionnable par une checkbox, exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
tree= new QTreeWidget;
tree->setColumnCount(1);
parent = new QTreeWidgetItem(tree);
parent->setText(0, "Parent");
parent->setFlags(parent->flags() | Qt::ItemIsUserCheckable);
parent->setCheckState(0, Qt::Unchecked);
enfant1 = new QTreeWidgetItem(parent);
enfant1->setText(0, QString::fromUtf8("Enfant 1"));
enfant1->setFlags(enfant1->flags() | Qt::ItemIsUserCheckable);
enfant1->setCheckState(0, Qt::Unchecked);
enfant2 = new QTreeWidgetItem(parent);
etc... |
Je cherche à modifier conjointement l'état des checkbox entre parent et enfants, c-à-d que un parent coché entraîne le même statut pour ses enfants, ou qu'un enfant décoché mette le parent en PartiallyChecked. Le SIGNAL/SLOT suivant fonctionne pour la première partie de ma demande :
Code:
1 2 3 4 5 6 7 8 9
|
connect(tree, SIGNAL(itemChanged(QTreeWidgetItem *, int) ), this, SLOT(bascule(QTreeWidgetItem *, int)));
void FenPrincipale::bascule(QTreeWidgetItem * item, int col) {
if (parent->checkState(0) == 2){
enfant1->setCheckState(0, Qt::Checked);
enfant2->setCheckState(0, Qt::Checked);
} |
sauf que bien entendu dans ce cas les enfants ne sont plus décochables individuellement et qui faut que je remette le parent à Unchecked pour pouvoir avoir de nouveau la main sur ses enfants...
Quelqu'un a-t-il une idée pour l'implémentation de la fonction 'bascule' ? car je sèche lamentablement...
Merci et bonne fin de journée