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

Reply via email to