Странное закрытие приложения Qt5
Пишу программу (под windows), и столкнулся вот с какой странной ситуацией ... Есть таблица, ее редактирую вызывая свой диалог редактирования посредством обычного dialog->exec(). Все работает как часы.
Но понадобилось программу прятать в трэйбар. Написал код, программа прячется. Пытаюсь из меню в трэйбаре вызвать диалог создания записи в таблице. Полностью тот же код, о котором я написал выше. Вызывается диалог. Так вот проблема - после закрытия диалога закрывается и программа! И по Ok, и по Cancel диалога.
Пол-дня убил на отладку, но так и не нашел причину.
Но случайно нашел вот что:
void MainWindow::SlotTest() {
TRACE_CALL
Data["FirstName"] = "T";
Data["LastName"] = "TEST";
Data["CardNumber"] = "1234567890";
show(); // <------------------------
activateWindow(); // <------------------------
emit SigSendData(&Data);
}
Если вставить эти две команды (выделил комментами), то до открытия диалога редактирования всплывает основное окно ... И дальше все работает без ошибок!
Не понимаю!!! Как-так? Почему если главное окно спрятано, происходит такая ситуация?
Ответы (1 шт):
Нашел решение проблемы!
В main.cpp нужно добавить строчку, сразу же за QApplication a(argc, argv); вот такую:
a.setQuitOnLastWindowClosed(false);
Это предотвращает автоматическое закрытие приложения, если видимых окон не осталось.