It is mostly likely related it is related to improper code in QGraphicsItem subclass which probably did not call
QGraphicsItem::prepareGeometryChange() as Pierre mentioned before. Alex On Wed, Dec 5, 2012 at 5:29 PM, Jan Kundrát <j...@flaska.net> wrote: > On Thursday, 29 November 2012 12:33:58 CEST, Volker Poplawski wrote: >> while (not m_items.isEmpty()) >> { >> QGraphicsItem *item = m_items.takeFirst(); >> m_scene->removeItem(item); // qtdoc says it's faster to >> remove item first then delete >> delete item; >> } > > When you call removeItem, its children are removed from the scene as well; > when you delete it, these children will be deleted immediately, too. Are you > sure that none of the items in your m_items is a child of any item present > earlier in that list? > > Have you tried to run your program under valgrind? > > And as a style suggestion, it might be better to rework the loop like this: > > Q_FOREACH(QGraphicsItem *item, m_items) { > m_scene->removeItem(item); > delete item; > } > m_items.clear(); > > QList very likely doesn't have much overhead even when used in this way, but > it feels wrong to keep deleting a first item from a container which is not a > linked list. > >> The interesting things is that without the removeItem() call, >> i.e. just calling delete on the items, my program does not >> crash. > > This is interesting. > > Cheers, > Jan > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest