2011-10-06 2 views

답변

4

Dummy 객체 소멸자가 호출되면 해당 기본 클래스 QWidget 소멸자가 (C++에서) 호출되고 QWidget 소멸자는 부모가이 Dummy 객체 인 모든 위젯을 삭제 처리합니다. 즉,이 Dummy 객체의 각 자식은 자동으로 삭제됩니다.

다음이 되풀이되므로 모든 자식의 자식이 삭제됩니다.

Qt 애플리케이션을 종료 할 때 수동으로 삭제해야하는 QWidgets (실제로는 QObject) 만 상위가 0 인 최상위 레벨 인 QWidget (실제로는 QObject)입니다. 그들의 파괴자들은 자동적으로 그들의 모든 아이들이 파괴되도록 보장 할 것입니다.

Qt namespace page에 설명 된 것처럼 Qt :: WA_DeleteOnClose 플래그도 있습니다.

위젯이 닫기 이벤트를 수락하면이 위젯을 삭제합니다 (QWidget :: closeEvent() 참조).

이 플래그는 일반적으로 사용되지 않는다고 생각합니다. 그래서 좋은 일반 원칙은 응용 프로그램이 종료 될 때 최상위 위젯을 삭제하는 것입니다.

관련 문제