При закрытии главного окна приложение не завершается |
Здравствуйте, гость ( Вход | Регистрация )
При закрытии главного окна приложение не завершается |
ilya |
18.4.2012, 10:11
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 18.4.2012 Пользователь №: 3330 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем привет.
По какой-то причине закрытие главного окна, унаследованного от QWidget, не приводит к завершению приложения. Причём не помогают завершить программу ни close(), ни destroy(), ни QApplication::exit(). close(), например, возвращает true, окно закрывается, но код внутри этого окна продолжает выполняться. Кто-нибудь сталкивался с такой проблемой? |
|
|
Snake174 |
18.4.2012, 12:25
Сообщение
#2
|
Студент Группа: Участник Сообщений: 89 Регистрация: 18.4.2011 Из: Миасс Пользователь №: 2613 Спасибо сказали: 9 раз(а) Репутация: 0 |
А чем тебе такое не нравится? Сделай функцию Start() типа bool и в ней, если не удалось запустить, вывести ошибку.
|
|
|
ilya |
18.4.2012, 12:45
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 18.4.2012 Пользователь №: 3330 Спасибо сказали: 0 раз(а) Репутация: 0 |
А чем тебе такое не нравится? Сделай функцию Start() типа bool и в ней, если не удалось запустить, вывести ошибку. Дело в том, что класс Recorder - это мост между графическим интерфейсом и остальной, достаточно большой, частью программы, вся обработка ошибок в которой построена на исключениях. Хорошим тоном при разработке архитектуры программного продукта считается выработка единой стратегии обработки ошибок, поэтому применение исключений в классе Recorder не обсуждается. Вообще, мысль в корне правильная - при возникновении исключения в конструкторе деструктор класса не вызывается, что может привести к утечке ресурсов, и, возможно, как раз к тому, что программа перестанет правильно завершаться. Но все ресурсы в этом коде используются через смартпойнтеры, поэтому утечки ресурсов тут априори не может быть, и дело скорее всего не в этом. |
|
|
Текстовая версия | Сейчас: 16.1.2025, 0:49 |