@yankeenoobs

Какой метод указывает QWidget не исчезать после отображения методом show() ?

Из класса главного окна создаю новое окно QWidget, когда нажимаю в меню соответствующий пункт, отображается окно Qwidget и сразу закрывается, как это поправить? Вызываю вот так
OptionApp OptionDialog;
OptionDialog.show();
  • Вопрос задан
  • 4056 просмотров
Решения вопроса 1
EXL
@EXL
Энтузиаст
Вы что-то делаете неправильно.
В данном случае вы создаёте объект класса OptionApp на стеке, это значит что после выхода из функции он будет разрушен. Исправьте на

OptionApp *optionDialog = new OptionApp(this);
optionDialog->show();

И не забудьте в конструкторе класса виджета этого окна вызвать:

setAttribute(Qt::WA_DeleteOnClose);
Чтобы избежать утечки памяти.

Это если вам нужен не модальный диалог. В противном случае просто воспользуйтесь
методом:
OptionDialog.exec();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@xseven
Вы создаете немодальный диалог вызывая show()
Если я правильно понял, то:
Попробуйте вызвать exec() вместо show(), тогда окно станет модальным и не закроется пока вы не завершите необходимые действия в нем.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы