2017-06-11 234 views
1

我有主對話框有一些按鈕。關閉對話框,關閉其主對話框

void MainDialog::onAButtonClicked() 
{ 
    Dialog *dial = new Dialog(pass some parameters); 
    dial->show(); 
} 

這種方法的問題是,當用戶關閉主對話框,在運行對話框獨立未關閉:每個按鈕如下生成一個獨立的對話。我不希望發生這個問題。一些解決方案建議覆蓋closeEventreject,我已經嘗試過,但這些要求我創建*dial作爲主對話框的成員數據。這可行,但我不想要這種方法,因爲我需要在用戶完全關閉窗口後刪除此對話框。我試圖用new分配一些內存,並刪除closereject事件上的對象,但應用程序掛起。解決這個問題的正確方法是什麼?

+0

隨意對任何查詢。 –

回答

3
connect(this,SIGNAL(finished(int)),dial,SLOT(close())); 

connect(this,SIGNAL(rejected()),dial,SLOT(close())); 
+0

我不想'dial'成爲主對話框的成員數據。我想完全避免這種方法。只要主對話框正在運行,用戶可以多次點擊該按鈕,而以前的一些對話框已經運行。 – CroCo

+0

此處的「撥號」不是「主對話框」的成員。在這裏,我們只需將一個來自主對話框的信號連接到'dial'插槽。 –