On Wed, Feb 12, 2014 at 1:45 PM, Radim Blazek <[email protected]> wrote: > I am using rubber band in Python plugin: > self.rb = QgsRubberBand(self.canvas, QGis.Polygon) > and on mouse move > self.rb.addPoint( point, update ) > > It works well on most systems only for Win7/32bit (QGIS 2.0.1, Python > 2.7.4) it was reported that it fails with "RuntimeError: underlying > C/C++ object has been deleted" > > I see that ownership of rubber band is passed to map canvas > > QgsRubberBand( QgsMapCanvas* mapCanvas /TransferThis/, > QGis::GeometryType geometryType = QGis::Line ); > > that is OK, but QgsMapCanvas should not delete QGraphicsItem until it > is destructed. > > So how can the QgsRubberBand be deleted before QGIS is closed?
BTW, because true owner of QGraphicsItem is QGraphicsScene, should not we first mScene->removeItem() (which returns ownership) before item is deleted in QgsMapCanvas destructor? Radim _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
