[PyQt] QModelIndex.internalPointer
Jeremy Sanders
jeremy at jeremysanders.net
Mon Apr 25 10:05:17 BST 2011
Hi - I've hit several crashes with Qt's model code with PyQt.
Can someone clear up the ownership rules for objects given to
QAbstractItemModel.createIndex and accessed with
QModelIndex.internalPointer?
I tried creating a layer of indirection when using createIndex, e.g.
class Indirect(object):
def __init__(self, realobj):
self.realobj = realobj
...
self.createIndex(row, col, Indirect(realobj))
This breaks rather horribly. The objects returned by internalPointer can be
completely random (the model index is however valid), with a different type.
Is because PyQt uses some sort of python id, which is reallocated by python
because the Indirector has no references to it?
I suppose I will have to hack something like storing a reference to the
Indirect object in the realobj.
Jeremy
--
http://www.jeremysanders.net/
More information about the PyQt
mailing list