Согласно документации по деструктору QGraphicsItem , «Более эффективно удалить элемент из QGraphicsScene перед уничтожением элемента».
Почему? Я не могу представить, как это может иметь значение. И если это имело значение, не должен ли деструктор QGraphicsItem просто вызвать:
if (scene() != NULL)
scene()->removeItem(this);
Я проверил исходный код, и это, похоже, не так, хотя иногда мне трудно понять исходный код Qt. РЕДАКТИРОВАТЬ:См. комментарии в ответе jdi.