Qt对话框如何从函数触发accept()和reject()
Posted
技术标签:
【中文标题】Qt对话框如何从函数触发accept()和reject()【英文标题】:Qt dialog how can I trigger accept() and reject() from function 【发布时间】:2011-05-26 09:31:55 【问题描述】:我从 main.cpp 文件打开QDialog
窗口,然后等待exec()
方法根据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()
插槽。
问题是我喜欢根据某些功能流程关闭窗口,而不是确定/关闭按钮。
如何从功能中触发这些插槽? .
【问题讨论】:
【参考方案1】:正如 liaK 指出的,您可以从代码中调用以下函数:
loginDlg->accept();
loginDlg->reject();
您还可以使用结果作为参数调用以下等效函数:
loginDlg->done(QDialog::Accepted);
loginDlg->done(QDialog::Rejected);
PS:请注意,您的问题中没有指定 Qt::Accepted 值。 正确的常量是 QDialog::Accepted
【讨论】:
【参考方案2】:只需调用它们..它们是正常函数..
例如:
loginDlg->accept();
另见this..
【讨论】:
以上是关于Qt对话框如何从函数触发accept()和reject()的主要内容,如果未能解决你的问题,请参考以下文章
accept()函数用来告诉Qt,事件处理函数“接收”了这个事件,不要再传递;ignore()函数则告诉Qt,事件处理函数“忽略”了这个事件,需要继续传递(看一下QWidget::mousePress