2011-05-26 66 views
2

我有我從main.cpp文件打開QDialog窗口的情況,然後我等待exec()方法根據成功或失敗返回QDialog。就像這樣:Qt對話框如何從函數中觸發accept()和reject()從

int main(...) { 
    LoginDialog *loginDlg = new LoginDlg; 

    if(loginDlg->exec() != Qt:;Accepted) { 
    return 0; 
    } 

    //check the login Info 
    delete loginDlg; 

    MainWindow w; 
    w.show() 
    return app.exec(); 
    } 

從Qt的例子(地址簿),我看到我只是可以使用accept()reject()插槽。 問題是,我喜歡基於某些功能流程關閉窗口,而不是確定/關閉按鈕。 如何從函數中觸發這些插槽? 。

回答

6

由於liaK指出,你可以調用以下功能來自您的代碼:

loginDlg->accept(); 
loginDlg->reject(); 

您還可以使用結果作爲參數調用下面的等效功能:

loginDlg->done(QDialog::Accepted); 
loginDlg->done(QDialog::Rejected); 

PS:還要注意有沒有的Qt ::爲您的問題指定的接受值。 正確的常數是QDialog :: Accepted

4

就打電話給他們。他們是正常功能..

如:

loginDlg->accept();

另見this ..