Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
LE0N |
12.3.2009, 21:03
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: 0
|
В общем написал малюсенькую аппликуху. В которой имеется форма-матюкалка фатальных ошибок апликухи.
Которую показываю так Хотелось бы, что бы после того, как отработает окно диалога (dlg->exec()) - т.е. закроется. Закрывалось всё приложение. QApplication::quit() вообще ни чего не делает. (По крайней мере этого не видно) QApplication::exit(-1) тоже. Просто закрывает все окна. А процесс так и остаётся висеть..... Цитата(LE0N @ 12.3.2009, 20:00) Link В общем написал малюсенькую программку. В которой имеется форма-матюкалка фатальных ошибок апликухи. Которую показываю так Хотелось бы, что бы после того, как отработает окно диалога (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
|
Цитата(LE0N @ 12.3.2009, 21:25) Link Так в том то и дело, я хочу что бы СРАЗУ после 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
|
Цитата(LE0N @ 12.3.2009, 21:40) Link Не помогло. А у меня работает Цитата(LE0N @ 12.3.2009, 21:40) Link А как начать обработку ПОСЛЕ 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
|
Цитата(LE0N @ 12.3.2009, 22:07) Link Мне не нужно через задницу. Мне нужен толковый способ по запуску loader->process после a.exec без участия пользователя... Если вся работа выполняется в process() и после его завершения программа должна закрыться (я так понимаю твою задачу):
Сообщение отредактировал BRE - 12.3.2009, 22:14 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 6.1.2026, 20:42 |