On 07.01.08 11:12:10, Aaron Digulla wrote: > Quoting Andreas Pakulat <[EMAIL PROTECTED]>: > >> On 06.01.08 21:13:44, Aaron Digulla wrote: >>> The root cause is that setModel() doesn't increment the usage counter of >>> the python class passed in, so Python will GC it if I don't save a >>> pointer elsewhere. >> >> Thats by purpose. One reason I can think of is that you often want to >> use the model elsewhere to insert data or do something with the data and >> then you often don't want a QAbstractItemModel instance but your >> specific subclass. > > I'm talking about preventing the python class which is used as the model > being garbage collected; it doesn't matter from which Qt class it is > derived. > > As it is, the class pointer is copied into the view class and then python > frees the memory. That causes spurious display errors and crashes. No > matter how you look at it, that's a bug.
No its not, the view doesn't take ownership of the model, neither in Qt C++ nor in PyQt, thats why your object is garbage collected. A reason for not taking ownership is that a model might be used in multiple views. Andreas -- Troubled day for virgins over 16 who are beautiful and wealthy and live in eucalyptus trees. _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt