QGraphicsItem destructor documentation에 따르면 "항목을 삭제하기 전에 QGraphicsScene에서 항목을 제거하는 것이 더 효율적입니다."왜 QGraphicsItem을 삭제하기 전에 장면에서 QGraphicsItem을 제거하는 것이 더 효율적입니까?
왜 그럴까요? 나는 그것이 어떻게 변화를 가져올 수 있는지 생각할 수 없다. 나는 소스를 확인
if (scene() != NULL)
scene()->removeItem(this);
, 때로는 내가 Qt는 소스를 이해하기 힘든 시간이 있지만이는 경우가하지 않는 것 : 그리고 변화를 한 경우 QGraphicsItem 소멸자는 호출하지 않아야합니다. EDIT : jdi의 답변에있는 의견을 참조하십시오.
고마워요. 나는 소스를 다시 검사했고 실제로 장면이 존재하는지 검사하는 라인이 있으며, 그렇다면'd_ptr-> scene-> d_func() -> removeItemHelper (this);'를 호출합니다. 그게 틀림 없어. 그래서 그것은 당신이 옳다는 것, 그 노트가 약간 오도하는 것일 수도 있습니다 (그 중 하나 또는 나는 doofus입니다). – Anthony
@Anthony : 오해의 소지가 있습니다 .--). 문서 도구는 도움이 될만한 내용이며, 혼란 스럽다면 올바른 관찰이됩니다. 확인을 위해 출처를 확인하는 것이 좋습니다. – jdi