Я написал полученный класс из QGraphicscencene
. В точке мне нужно удалить все предметы со сцены, и я хочу, чтобы предметы были физически разрушены (под названием Destructor). Я попробовал следующее:
QList<QGraphicsItem*> all = items();
for (int i = 0; i < all.size(); i++)
{
QGraphicsItem *gi = all[i];
removeItem(gi);
delete gi; // warning at this line
}
QT Creator излучает предупреждение: Предупреждение: C4150: Удаление указателя на неполный тип «QGraphicsItem»; Никакой деструктора не под названием
Я не уверен, что это так. QGraphicsItem
имеет виртуальный деструктор, поэтому элементы должны быть удалены из памяти.
Если это не правильный путь, как я могу удалить все QGraphicsItem
с QGraphicsChene
? Обратите внимание, что я знаю, когда сцена удаляется, все элементы также будут удалены. Но я хочу удалить предметы со сцены и нарисовать другие предметы. Я хочу удаленные предметы быть удалены из памяти.