Oggetti sembra essere cancellato se non assegnato alla variabile oggetto in PySide

StackOverflow https://stackoverflow.com/questions/4071740

  •  28-09-2019
  •  | 
  •  

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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top