QApplication::quit() не срабатывает? |
Здравствуйте, гость ( Вход | Регистрация )
QApplication::quit() не срабатывает? |
LE0N |
12.3.2009, 21:03
Сообщение
#1
|
Студент Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: 0 |
В общем написал малюсенькую аппликуху. В которой имеется форма-матюкалка фатальных ошибок апликухи.
Которую показываю так
Хотелось бы, что бы после того, как отработает окно диалога (dlg->exec()) - т.е. закроется. Закрывалось всё приложение. QApplication::quit() вообще ни чего не делает. (По крайней мере этого не видно) QApplication::exit(-1) тоже.
Просто закрывает все окна. А процесс так и остаётся висеть..... В общем написал малюсенькую программку. В которой имеется форма-матюкалка фатальных ошибок апликухи. Которую показываю так
Хотелось бы, что бы после того, как отработает окно диалога (dlg->exec()) - т.е. закроется. Закрывалось всё приложение. QApplication::quit() вообще ни чего не делает. (По крайней мере этого не видно) QApplication::exit(-1) тоже.
Просто закрывает все окна. А процесс так и остаётся висеть..... ВЦ. Где кнопка редактировать? |
|
|
panter_dsd |
12.3.2009, 21:05
Сообщение
#2
|
Жаждущий знаний Группа: Участник Сообщений: 254 Регистрация: 1.1.2009 Из: Санкт-Петербург Пользователь №: 474 Спасибо сказали: 32 раз(а) Репутация: 3 |
Приведи побольше кода.
Цитата ВЦ. Где кнопка редактировать? После 20 постов появится. Сообщение отредактировал panter_dsd - 12.3.2009, 21:06 |
|
|
LE0N |
12.3.2009, 21:11
Сообщение
#3
|
Студент Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: 0 |
main
Раскрывающийся текст
Loader::process() Раскрывающийся текст
FatalMsg::display Раскрывающийся текст
|
|
|
panter_dsd |
12.3.2009, 21:20
Сообщение
#4
|
Жаждущий знаний Группа: Участник Сообщений: 254 Регистрация: 1.1.2009 Из: Санкт-Петербург Пользователь №: 474 Спасибо сказали: 32 раз(а) Репутация: 3 |
Так w остается висеть...
Попробуй
|
|
|
LE0N |
12.3.2009, 21:25
Сообщение
#5
|
Студент Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: 0 |
Так в том то и дело, я хочу что бы СРАЗУ после FatalMsg::display, закрывалось всё приложение!
Может исключение какое выбрсить можно, аль ещё чего? QApplication::closeAllWindows(); Как я уже и говорил, закрывает все окна, только в не зависимости от настройки setQuitOnLastWindowClosed(true), процесс остаётся висеть.... |
|
|
BRE |
12.3.2009, 21:36
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Так в том то и дело, я хочу что бы СРАЗУ после FatalMsg::display, закрывалось всё приложение! Может исключение какое выбрсить можно, аль ещё чего? QApplication::closeAllWindows(); Как я уже и говорил, закрывает все окна, только в не зависимости от настройки setQuitOnLastWindowClosed(true), процесс остаётся висеть.... Ты запускаешь process, еще до запуска цикла обработки событий (который запускается a.exec()), поэтому quit() и не отрабатывает, ему еще останавливать нечего. Есть жОсткий метод: добавь ::exit( 0 ) в функцию display (после qApp->quit() или вместо). А по хорошему, вызывай display после запуска цикла событий. Сообщение отредактировал BRE - 12.3.2009, 21:38 |
|
|
LE0N |
12.3.2009, 21:40
Сообщение
#7
|
Студент Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не помогло.
А как начать обработку ПОСЛЕ a.exec ? К какому слоту прицепиться? |
|
|
BRE |
12.3.2009, 21:55
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Не помогло. А у меня работает :
А как начать обработку ПОСЛЕ a.exec ? К какому слоту прицепиться? Я не знаю что ты хочешь сделать? Если вся работа происходит в process, замени в main: return a.exec(); на return 0; Или можно запускать process нажатием кнопки или по таймеру наконец. Много есть разных вариантов. |
|
|
LE0N |
12.3.2009, 22:07
Сообщение
#9
|
Студент Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: 0 |
Мне не нужно через задницу. Мне нужен толковый способ по запуску loader->process после a.exec без участия пользователя...
|
|
|
BRE |
12.3.2009, 22:12
Сообщение
#10
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Мне не нужно через задницу. Мне нужен толковый способ по запуску loader->process после a.exec без участия пользователя... Если вся работа выполняется в process() и после его завершения программа должна закрыться (я так понимаю твою задачу):
Сообщение отредактировал BRE - 12.3.2009, 22:14 |
|
|
Текстовая версия | Сейчас: 27.12.2024, 3:07 |