我已經從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
?請注意,我知道場景何時被刪除,所有項目也將被刪除。但我想從場景中移除物品並畫出其他物品。我希望刪除的內容從內存中刪除。