QDialog :: setResult具有自定义返回值

时间:2016-10-08 18:59:49

标签: c++ qt qdialog

请注意:qt / c ++ newbie here

目的:

我有一个QDialog,我想从中返回一个结果。我知道QDialog::exec()与setResult相结合,导致使用Accept()Reject()

但是当documentation page读取时,开发人员建议起诉QDialog返回代码,这意味着可以使用可以使用不同的值,尽管我没有运气有这个。

enum ReturnResult{
    success=0,
    fail=1
    error=2
    warning=3
}

如何使用QDialog::setResult()函数发送自定义enum值(如上所示),

因此,回到父类,如果不可能,有什么建议可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您可以致电QDialog::done(int res)以关闭包含所需结果代码的对话框,然后该代码将成为QDialog::exec()的返回值。

答案 1 :(得分:0)

result()的文档声明了

  

通常会返回模态对话框的结果代码AcceptedRejected

如果我理解正确,这意味着即使当前实现允许传递自定义值,也不能确定它将来不会更改并破坏您的代码。

在您的情况下,只需向其添加另一个信号并连接到它,或者将您自己的字段添加到对话框并使用它来传递数据。

相关问题