QTreeView/ QModelIndex : child fonctionnement
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
Code:
1 2 3 4 5 6 7 8 9 10
| Racine1
|
--Fils1.1
|
--Fils1.1.1
Racine2
|
--Fils2.1
|
-- Fils2.1.1 |
J'arrive à obtenir l'item sélectionné grâce à la méthode selectedIndexes() [0]
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:
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