2

我的情况是我QDialogmain.cpp文件打开窗口,然后等待exec()方法根据 .cpp 文件的成功或失败返回QDialog。像这样 :

   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()插槽。问题是我喜欢根据某些功能流程关闭窗口,而不是确定/关闭按钮。如何从功能中触发这些插槽?.

4

2 回答 2

6

正如 liaK 指出的那样,您可以从代码中调用以下函数:

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

您还可以使用结果作为参数调用以下等效函数:

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

PS:请注意,您的问题中没有指定 Qt::Accepted 值。正确的常数是 QDialog::Accepted

于 2011-05-26T09:59:37.203 回答
4

打电话给他们..他们是正常的功能..

例如:

loginDlg->accept();

也看到这个..

于 2011-05-26T09:37:24.073 回答