No subject


Thu Mar 8 10:26:06 GMT 2007


> Sometimes a Qt class instance will maintain a pointer to another
> instance and will eventually call the destructor of that second
> instance.  The most common example is that a QObject (and any of its
> sub-classes) keeps pointers to its children and will automatically call
> their destructors. In these cases, the corresponding Python object will
> also keep a reference to the corresponding child objects.

Maybe add something like "If you create a (subclass of) QObject in your
Python code that refers to an object whose corresponding C++ object will
remain in existence after the Python object is garbage-collected, this
will cause a segmentation fault."?  Is that right??  Does the C++ object
have to have a slot (implemented as a Python callable) which gets called
from C++ at some point for a segfault to be caused?

Actually, why do you get a segfault at all in the example above?  If the
Python instance of Python class QCanvasSprite has a reference to the
QCanvasPixmapArray, why would the QCanvasPixmapArray get garbage-
collected?

Any help appreciated


John





More information about the PyQt mailing list