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();
任何提示都会有所帮助
对待Lars
答案 0 :(得分:1)
QDialog exec()已经返回对话框是accepted还是rejected。如果这两者之间的区别是不够的,因为您已经有了自定义类,您可以自己轻松地实现这种行为。
任何按钮都已调用关闭对话框的其中一个函数,因此您可以简单地存储在类成员中按下的那个函数,并使用您想要的方法检索该值。
另一种可能性是重载exec()
,调用其中的基类实现并返回自定义成员,该成员直接存储按下的按钮。
答案 1 :(得分:0)
在处理MyDialog中的按钮时,您将调用setResult(int r)方法,然后 result()将为您提供相应的值(可能还有 exec())。有关如何完成此操作的详细信息,您可以检查 QMessageBox 实现,因为 exec()返回实际的按钮ID。