Bonjour à tous
J'ai un objet QTreeView auquel j'ai appliqué un model comprenant des QStandardItem qui sont hiérarchisé d'une certaine façon à l'aide de la fonction appendRow
Je me retrouve donc avec un arbre. (un père a au plus un fils)
Exemple
J'arrive à obtenir l'item sélectionné grâce à la méthode selectedIndexes() [0]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Racine1 | --Fils1.1 | --Fils1.1.1 Racine2 | --Fils2.1 | -- Fils2.1.1
néanmoins, je n'arrive pas à parcourir la branche en dessous de cet objet (autrement dis à récupérer ses fils)
J'ai essayé avec child mais cela ne fonctionne pas pour certain nœud :
les nœuds racine hormis le premier ne fonctionne pas donc dans mon exemple pour Racine2 ne fonctionne pas alors que les autres nœud si
Mon code simplifié:
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 index = self.tree.selectedIndexes()[0] print "index :" , self.model.data(index).toString() print index child = index.child(index.row(), index.column()) print child print "child :" , self.model.data(child).toString()
Exemple de résultat pour un noeud qui ne fonctionne pas :
index : Racine2
<PyQt4.QtCore.QModelIndex object at 0x0928C730>
<PyQt4.QtCore.QModelIndex object at 0x0928C848>
child :
Exemple de résultat pour un noeud qui fonctionne :
index : Fils2.1
<PyQt4.QtCore.QModelIndex object at 0x0928C538>
<PyQt4.QtCore.QModelIndex object at 0x0928C8F0>
child : Fils 2.1.1
Partager