Какой метод указывает QWidget не исчезать после отображения методом show() ?
Вы создаете немодальный диалог вызывая show()
Если я правильно понял, то:
Попробуйте вызвать exec() вместо show(), тогда окно станет модальным и не закроется пока вы не завершите необходимые действия в нем.
Вы что-то делаете неправильно.
В данном случае вы создаёте объект класса OptionApp на стеке, это значит что после выхода из функции он будет разрушен. Исправьте на OptionApp *optionDialog = new OptionApp(this);
optionDialog->show();
И не забудьте в конструкторе класса виджета этого окна вызвать:setAttribute(Qt::WA_DeleteOnClose);
Чтобы избежать утечки памяти.
Это если вам нужен не модальный диалог. В противном случае просто воспользуйтесь
методом:OptionDialog.exec();