假設我在我的應用程序中有兩個窗口,並且有兩個窗口負責它們: class MainWindow: public QMainWindow
和class SomeDialog: public QWidget
。如何正確清理QWidget /管理一組窗口?
在我的主窗口中,我有一個按鈕。點擊時,我需要顯示第二個窗口。我這樣做:
SomeDialog * dlg = new SomeDialog();
dlg.show();
現在,用戶在窗口中做了一些事情,並關閉它。此時我想從該窗口獲取一些數據,然後,我想,我將不得不delete dlg
。但是,我怎樣才能捕捉到正在關閉的窗口?
或者有沒有另一種方式沒有內存泄漏?也許最好是在啓動時創建每個窗口的實例,然後他們只是Show()
/Hide()
?
如何管理這種情況?從QWidget
ctor使用窗口標誌,而不是窗口小部件屬性。正確的調用是dialog-> setAttribute(Qt :: WA_DeleteOnClose) – 2012-07-28 08:02:27
@FrankOsterfeld謝謝。當我輸入時,我無法編譯,因此我從未檢查過。 – MrFox 2012-07-28 16:49:09
@FrankOsterfeld關閉對話框意味着什麼?說我有一個按鈕,並調用插槽關閉(),然後會發生什麼?對話框是否會從內存中清除? – 2015-10-09 10:58:14