신청서에 두 개의 창과 두 개의 클래스가 있다고 가정 해 봅시다 : class MainWindow: public QMainWindow
및 class SomeDialog: public QWidget
.QWidget을 올바르게 정리하는 방법/일련의 창을 관리하는 방법?
내 메인 창에 버튼이 있습니다. 클릭하면 두 번째 창을 표시해야합니다. 나는 이렇게한다 :
SomeDialog * dlg = new SomeDialog();
dlg.show();
이제 사용자는 창에서 무엇인가를 수행하고 그것을 닫는다. 이 시점에서 나는 그 창에서 어떤 데이터를 얻고 싶습니다. 그러면 저는 가정합니다. delete dlg
입니다. 그러나 그 창문이 닫히는 사건을 어떻게 잡을 수 있습니까?
아니면 메모리 누수가없는 다른 방법이 있습니까? 어쩌면 시작시 각 창에 대한 인스턴스를 만드는 것이 더 좋을 것입니다. 그런 다음 Show()
/Hide()
을 입력하면됩니까?
어떻게 이러한 사례를 관리합니까?
ctor는 위젯 속성이 아닌 창 플래그를 사용합니다. 올바른 호출은 dialog-> setAttribute (Qt :: WA_DeleteOnClose) –
@FrankOsterfeld입니다. 내가 입력하지 않았을 때 나는 컴파일 할 수 없었다. 결코 체크하지 않았다. – MrFox
@FrankOsterfeld 대화 상자가 닫히는 것을 의미합니까? 단추가 있고 슬롯을 close()라고 말하면 어떻게됩니까? 대화 상자가 메모리에서 삭제됩니까? –