LINUX.ORG.RU

Возврат значения из диалога QT


0

0

Как в QT от диалога получить возвращаемое значение. Передавал начальное значение диалогу по ссылке. Далее, сохранял и изменял это значение в форме. Но ведь время жизни параметра ограничено жизнью конструктора, так что из точки создания диалога я ничего не могу иметь.

Есть в QDialog метод result(), который возвращает "result code", но сдается мне, что это что-то типа "reject() и accept()".

Как быть ?


Ну и ? После того как QDialog::exec() возвратит управление, сам объект диалога никуда не девается и значит - таки можно в него залезть и вытащить из него данные (в случае если exec вернула Accepted).
Типа того:

struct FormData{
//some fields to be edited
};

class MyDialog : public QDialog{
public:
MyDialog(const FormData&);
FormData getResult();
};

//...
FormData data;
MyDialog dialog(data);
if(dialog.exec() != QDialog::Rejected)
data = dialog.getResult();

Flogger_d
()
Ответ на: комментарий от Flogger_d

Как водится "сам дурак" - я просто забыл, что моя объектная переменная с диалогом жива еще, и к свойствам формы я могу спокойненько иметь доступ. Спасибо!

gtyrin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.