J'essaie d'utiliser QStandardItemModel pour représenter une hiérarchie de données, mais lorsque j'ajoute QStandardItems au modèle, je dois les affecter dans des variables membres d'objet ou les objets semblent être supprimés.Les objets semblent être supprimés s'ils ne sont pas affectés à la variable objet dans PySide
Par exemple
self.tree_model = QStandardItemModel()
self.tree_model.setHorizontalHeaderLabels(['Category'])
self.out_insertions = QStandardItem("Insertions")
self.tree_model.invisibleRootItem().appendRow(self.out_insertions)
fonctionne comme prévu (une ligne "Insertion" est inséré dans la colonne "Catégorie"). Mais si je supprime l'affectation de self.out_insertion, comme:
self.tree_model = QStandardItemModel()
self.tree_model.setHorizontalHeaderLabels(['Category'])
self.tree_model.invisibleRootItem().appendRow(QStandardItem("Insertions"))
Il ne fonctionne pas (une ligne vide est affichée). J'utilise Qt 4.6.3 et PySide 0.4.1. Quelqu'un peut-il m'expliquer pourquoi cela arrive?
Merci à l'avance
~ Aki
Cela signifie que QStandardItemModel ne conserve pas de références internes aux éléments?!? Cela semble assez étrange ... – AkiRoss
Oups, on dirait que j'ai mal interprété le tag 'pyside' et supposé' PyQt' ... – ChristopheD
Eh bien, j'ai pensé à ce problème de toute façon, c'est probablement une question de désallocation/destruction ... Cela explique pourquoi l'utilisation de variables locales au lieu de variables d'objet ne résoudrait pas. Quoi qu'il en soit, ce que je trouve étrange, c'est que les objets doivent être référencés à l'intérieur de StandardItemModel et donc pas détruits ... Mais pourquoi? – AkiRoss