Hi all,<br><br>I've got the following error:<br><br>Traceback (most recent call last):<br>&nbsp; File &quot;test2.py&quot;, line 47, in mousePressEvent<br>&nbsp;&nbsp;&nbsp; item = MyItem2(self.options)<br>&nbsp; File &quot;test2.py&quot;, line 10, in __init__
<br>&nbsp;&nbsp;&nbsp; i.setParentItem(self)<br>RuntimeError: underlying C/C++ object has been deleted<br><br>for this code (I've tried to make it as short as possible):<br><br>import sys<br>from PyQt4 import QtGui, QtCore<br><br>class MyItem2(
QtGui.QGraphicsItem):<br>&nbsp;&nbsp;&nbsp; def __init__(self, items):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtGui.QGraphicsItem.__init__(self)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.items = items<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for i in self.items:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i.setParentItem(self)<br><br>&nbsp;&nbsp;&nbsp; def paint(self, painter, option, widget):
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; painter.drawEllipse(0, 0, 10, 10)<br><br>&nbsp;&nbsp;&nbsp; def boundingRect(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return QtCore.QRectF(0, 0, 20, 20)<br><br><br>class MyItem1(QtGui.QGraphicsItem):<br>&nbsp;&nbsp;&nbsp; def __init__(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtGui.QGraphicsItem.__init_
_(self)<br><br>&nbsp;&nbsp;&nbsp; def paint(self, painter, option, widget):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; painter.drawEllipse(0, 0, 20, 20)<br><br>&nbsp;&nbsp;&nbsp; def boundingRect(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return QtCore.QRectF(0, 0, 20, 20)<br><br><br>class MyItem(QtGui.QGraphicsItem
):<br>&nbsp;&nbsp;&nbsp; def __init__(self, options):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtGui.QGraphicsItem.__init__(self)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.options = options<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.activated = False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.items = []<br><br>&nbsp;&nbsp;&nbsp; def paint(self, painter, option, widget):
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass<br><br>&nbsp;&nbsp;&nbsp; def boundingRect(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return QtCore.QRectF(-100, -100, 200, 200)<br><br>&nbsp;&nbsp;&nbsp; def mousePressEvent(self, event):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.activated = not self.activated<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if self.activated
:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; item = MyItem2(self.options)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.scene().addItem(item)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.items.append(item)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; item.setParentItem(self)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not self.activated:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for i in 
self.items:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i.setParentItem(None)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.scene().removeItem(i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.items = []<br><br>class MyView(QtGui.QGraphicsView):<br>&nbsp;&nbsp;&nbsp; def __init__(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QtGui.QGraphicsView.__init_
_(self)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.scene = QtGui.QGraphicsScene()<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.items = [MyItem1(), MyItem1(), MyItem1()]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.item = MyItem(self.items)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.scene.addItem(self.item)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
self.setScene(self.scene)<br><br># main program<br>app = QtGui.QApplication(sys.argv)<br>view = MyView()<br>view.show()<br><br>sys.exit(app.exec_())<br><br>After running it, click several times on the 'canvas' to see the error.
<br>It is strange. The error concerns objects which I hold in MyItem.objects. I do not understand why the underlying objects are lost. Can anyone explain me that?<br>Moreover if I comment the line 'self.items = []' then there is no such error. Is it possible that this assignment destroys C/C++ objects under the curtain? Hard to believe.
<br><br>best regards,<br>Krystian<br>