Bonjour,
J'ai un arbre (tree) avec plusieurs items (parents-enfants), chacun étant sélectionnable par une checkbox, exemple :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
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
Partager