2010-07-16 54 views
3

我有一個QDialog的一個QDialogBu​​ttonBox小部件,我已經連接按鈕盒的接受信號的插槽我QDialog的子類,像這樣:如何使QDialogBu​​ttonBox不關閉它的父級QDialog?

void MyDialog::on_buttonBox_accepted() 
{ 
    QString errorString = this->inputErrorString(); 
    if (errorString.isEmpty()) 
    { 
     // Do work here 
     // code code code... 

     this->accept(); 
    } 
    else 
    { 
     QMessageBox::critical(this, tr("Error"), tr("The following input errors have occurred:") + errorString); 
    } 
} 

然而,對話框關閉後,消息框顯示;顯然,按鈕盒自動將其接受的信號連接到QDialog的接受插槽(我想手動調用該插槽)。我怎樣才能防止這個,所以我可以採取上述手動方法?

+0

這個問題似乎很模糊,你可以舉一個例子併發布完整的代碼。 – Naruto 2010-07-16 05:38:36

回答

14

您可以實現MyDialog :: accept()。該功能在QDialog中是虛擬的。

+0

優秀,正是我需要的 - 謝謝! – 2010-07-16 05:43:27

+0

調用QDialog :: accept();在這個重載函數內部接受或返回;保持對話框運行。 – 2015-11-18 03:25:24

相關問題