Не уверен, что у этого есть простое решение, но я хочу написать функцию, которая показывает диалог (определенный в другом месте в классе, который наследует 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