Bonjour,

J'ai un arbre (tree) avec plusieurs items (parents-enfants), chacun étant sélectionnable par une checkbox, exemple :

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...
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
 
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