Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QDialog:需要按下按钮或返回值_C++_Qt - Fatal编程技术网

C++ QDialog:需要按下按钮或返回值

C++ QDialog:需要按下按钮或返回值,c++,qt,C++,Qt,我正在寻找一种从QDialog小部件中获取按下按钮的简单方法。 (所有按钮在按下事件后完成对话框,许多按钮)。这样: MyDialog *ptrMyDialog = new MyDialog; ptrMyDialog->exec(); // blocked til finished // ??? QAbstractButton * btn = ptrMyDialog->Function_I_Need(); // or. I only need a spezific return

我正在寻找一种从QDialog小部件中获取按下按钮的简单方法。 (所有按钮在按下事件后完成对话框,许多按钮)。这样:

MyDialog *ptrMyDialog = new MyDialog;
ptrMyDialog->exec(); // blocked til finished 
// ??? 
QAbstractButton * btn = ptrMyDialog->Function_I_Need();
// or. I only need a spezific return value, set by button. e.g
auto retValIneed= ptrMyDialog->exec();
任何提示都会有帮助

关于LAR

对话框已返回对话框是或。如果这两者之间的区别还不够,因为您已经有了一个自定义类,您可以自己轻松地实现这种行为

任何按钮都已经调用了关闭对话框的函数之一,因此您可以简单地将按下的按钮存储在类的成员中,并使用所需的方法检索该值


另一种可能是重载
exec()
,调用其中的基类实现,并返回您的自定义成员,该成员存储了以前直接按下的按钮。

在处理MyDialog中的按钮时,您将调用该方法,然后result()将给您相应的值(也可能是exec()))。有关如何执行此操作的详细信息,您可以检查QMessageBox实现,因为那里的exec()返回实际的按钮ID。

您好,谢谢。我尝试了setResult/result机制,但没有成功。如何在buttonhandler中关闭对话框。我试过setResult/close;设置结果/完成;设置结果/完成。似乎只有状态0&1在QMessageBox中,按钮ID被传递给setResult,请参阅,您可能应该执行类似的操作。您好,谢谢。我重载了exec()方法。它正在工作。