不确定这是否有一个简单的解决方案,但我想编写一个显示对话框的函数(在继承QDialog
的类中的其他位置定义)并在用户完成与...的交互时返回用户输入对话。换句话说,类似于QFileDialog::getOpenFileName
静态方法,其中一行可以打开对话框并返回用户的输入,而不是使用繁琐的(在这种情况下)信号/插槽机制。
预期用途:
/* Shows the dialog, waits until user presses OK or Cancel,
then returns the user's choice.
*/
result = createDialogAndReturnUserChoice()
我目前在PyQt工作,但我对传统的Qt4 C ++框架中的答案很满意。
EDIT //
以下是如何操作:
dialog = CustomDialog() # creates the custom dialog we have defined in a class inheriting QDialog
if dialog.exec_(): # on exec_(), the whole program freezes until the user is done with the dialog; it returns the response of the user
# success
else:
# failure
答案 0 :(得分:1)
听起来你拥有所需的一切。您可以在QDialog
派生类中创建一个执行所需操作的静态函数。您可以创建一个结构或类,用于封装用户将生成的数据并从静态函数返回它。 Qt包含所有源代码,因此您可以查看QFileDialog::getOpenFileName()
中的qfiledialog.cpp
,看看他们做了什么。
编辑:抱歉,我错过了您使用的是Python。我不知道该语言用于扩展C ++类和静态方法的功能。