Qt对话框如何从函数中触发accept()和reject()

时间:2011-05-26 09:31:56

标签: c++ qt qdialog

我有情况我从 main.cpp 文件打开QDialog窗口然后我等待exec()方法根据{成功或失败返回{1}}。像这样:

QDialog

从Qt示例(地址簿)中我看到我可以使用 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(); } accept()个广告位。 问题是我喜欢基于某些功能流关闭的窗口,而不是ok / close按钮。 如何从功能中触发这些插槽?

2 个答案:

答案 0 :(得分:6)

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

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

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

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

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

答案 1 :(得分:4)

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

E.g:

loginDlg->accept();

另见this ..