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는 창조주는 경고 방출 불완전 형 'QGraphicsItem'포인터의 삭제; 소멸자가 없습니다
왜 그런지 모르겠습니다. QGraphicsItem
에는 가상 소멸자가 있으므로 항목을 메모리에서 삭제해야합니다.
올바른 방법이 아니면 QGraphicsScene
에서 QGraphicsItem
을 모두 삭제할 수 있나요? 장면이 삭제되면 모든 항목도 삭제된다는 것을 알고 있습니다. 하지만 장면에서 항목을 제거하고 다른 항목을 그립니다. 삭제 된 항목을 메모리에서 삭제하고 싶습니다.