[PyQt] Object ownership bug in QGraphicsScene::setStyle()

Max Schwarz Max at x-quadraht.de
Thu Aug 5 00:03:20 BST 2010


I think I have discovered a bug in PyQt.

QGraphicsScene.setStyle() does not move ownership of the style to C++, but Qt 
reparents the style to the scene and deletes it at exit, which causes a 
segmentation fault if the python interpreter tries to delete it as well.

See the attachment for a minimal sample.

I believe line 314 of sip/qgraphicsscene.sip is to blame:

%If (Qt_4_4_0 -)
    void setStyle(QStyle *);

I did not delve deeply into sip, but I think a /Transfer/ annotation is 

My PyQt4 version: 4.7.3-1ubuntu2~lucid1~ppa2 from the kubuntu beta ppa, I did 
not check if the issue still remains with more current versions.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: bug.py
Type: text/x-python
Size: 187 bytes
Desc: not available
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20100805/23833354/attachment-0001.py>

More information about the PyQt mailing list