QGraphicsScene
から派生クラスを作成しました。ある時点で、シーンからすべてのアイテムを削除する必要があります。アイテムを物理的に破棄したい(デストラクタが呼び出されます)。私は、次を試してみました:警告:C4150: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のCreatorは警告発する不完全型へのポインタの削除「をQGraphicsItem」。デストラクタは呼ばれません
私はなぜそれが分かりません。 QGraphicsItem
には仮想デストラクタがあるため、メモリからアイテムを削除する必要があります。
これが正しい方法でない場合、QGraphicsItem
をすべてQGraphicsScene
から削除するにはどうすればよいですか?シーンが削除されると、すべてのアイテムも削除されます。しかし、私はシーンからアイテムを削除し、他のアイテムを描画したい。削除したアイテムをメモリから削除したい。