Oggetti sembra essere cancellato se non assegnato alla variabile oggetto in PySide
Domanda
Sto cercando di utilizzare QStandardItemModel per rappresentare una gerarchia di dati, ma quando si aggiunge QStandardItems al modello, devo per assegnarle in variabili membro oggetto o gli oggetti sembra essere cancellato.
Ad esempio
self.tree_model = QStandardItemModel()
self.tree_model.setHorizontalHeaderLabels(['Category'])
self.out_insertions = QStandardItem("Insertions")
self.tree_model.invisibleRootItem().appendRow(self.out_insertions)
funziona come previsto (una riga "inserimento" è inserito sotto la colonna "Categoria"). Ma se io rimuovere l'assegnazione self.out_insertion, come:
self.tree_model = QStandardItemModel()
self.tree_model.setHorizontalHeaderLabels(['Category'])
self.tree_model.invisibleRootItem().appendRow(QStandardItem("Insertions"))
non funziona (una riga vuota viene mostrato).
Sto usando Qt 4.6.3 e 0.4.1 PySide. Qualcuno mi può spiegare perché questo accade?
Grazie in anticipo
~ Aki
Soluzione
Il vostro get garbage collection poiché non esistono più (Python) riferimenti ad esso.
Questo comportamento è descritto negli cose per essere consapevole di ' nella documentazione PyQt.
La maggior parte di questi problemi (a terra PyQt) può essere evitato corretta parenting
(che rende Qt assumere la proprietà invece di PyQt).