我已经从QGraphicsScene
中编写了派生类。在我需要从场景中移除所有物品的时候,我希望物品被物理销毁(析构函数称为)。我尝试以下:如何从QGraphicsScene中删除所有QGraphicsItem
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创建者发出一个警告:警告:C4150:删除指针不完全型“的QGraphicsItem”的;没有析构函数叫
我不确定这是为什么。 QGraphicsItem
有虚拟析构函数,所以应该从内存中删除项目。
如果这不是正确的方法,我该如何从QGraphicsScene
删除所有QGraphicsItem
?请注意,我知道场景何时被删除,所有项目也将被删除。但我想从场景中移除物品并画出其他物品。我希望删除的内容从内存中删除。