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