Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: jjoss от Январь 12, 2010, 15:57



Название: Модальное окно и закрытие приложения
Отправлено: jjoss от Январь 12, 2010, 15:57
Народ, подскажите, пожалуйста, как грамотно сделать следующее.
При запуске приложения открывается форма авторизации. На ней кроме всего прочего две кнопки "ОК" и "Отмена". При нажатии "Ок", приложение работает дальше, открывается главная форма. А при нажатии "Отмена" закрывается всё приложение.
Делаю так. Проверяю, что возвращает exec() модального окна. Если QDialog::Accepted, то всё нормально, а вот если QDialog::Rejected, то не могу закрыть приложение, используя QApplication::quit(), всё равно открывается главная форма...


Название: Re: Модальное окно и закрытие приложения
Отправлено: jjoss от Январь 12, 2010, 16:02
В принципе срабатывает так
Код:
main(...)
{
     QApplication app(...);
     MainWindow mainWindow;
     AuthDialog dlg;
     if ( dlg.exec() == QDialog::Rejected)
         return 0;
 
     //Главное окно
 
     return app.exec();
}

Но мучает вопрос - будет ли корректно освобождена память?


Название: Re: Модальное окно и закрытие приложения
Отправлено: Dendy от Январь 12, 2010, 16:04
Будет.


Название: Re: Модальное окно и закрытие приложения
Отправлено: jjoss от Январь 12, 2010, 16:09
Будет.

Спасибо! Тогда вопрос закрыт.


Название: Re: Модальное окно и закрытие приложения
Отправлено: Marat(Qt) от Январь 12, 2010, 16:17
Я использую команду exit(0); срабатывает везде. Память освобождает ОС, так что все чисто.


Название: Re: Модальное окно и закрытие приложения
Отправлено: Авварон от Январь 12, 2010, 16:50
только деструкторы не вызываются, ага


Название: Re: Модальное окно и закрытие приложения
Отправлено: Dendy от Январь 12, 2010, 17:02
exit(0) - никогда так не делайте, если нет крайней необходимости.


Название: Re: Модальное окно и закрытие приложения
Отправлено: SABROG от Январь 12, 2010, 17:02
только деструкторы не вызываются, ага

Иногда мне кажется а может оно к лучшему, если посмотреть на FireFox, то эта падла долго выходить не хочет...


Название: Re: Модальное окно и закрытие приложения
Отправлено: Marat(Qt) от Январь 12, 2010, 17:10
exit(0) - никогда так не делайте, если нет крайней необходимости.
Знать бы почему


Название: Re: Модальное окно и закрытие приложения
Отправлено: DS_tm от Январь 13, 2010, 02:45
exit(0) - никогда так не делайте, если нет крайней необходимости.
Знать бы почему

А почему вы компьютер не выключаете, выдернув кабель из сети?)


Название: Re: Модальное окно и закрытие приложения
Отправлено: Marat(Qt) от Январь 13, 2010, 04:00
exit(0) - никогда так не делайте, если нет крайней необходимости.
Знать бы почему

А почему вы компьютер не выключаете, выдернув кабель из сети?)
Неплохое сравнение. Причину пожалуйста. Ваше сравнение ничего не дает


Название: Re: Модальное окно и закрытие приложения
Отправлено: ilot от Январь 13, 2010, 04:37
только деструкторы не вызываются, ага
А зачем их вызывать, если работа приложения полностью завершается? никаких утечек ресурсов не возникает, выделенная приложению память должна полностью освобождаться. Если логика приложения допускает такое завершение, то не вижу причин избегать его использование... Другое дело, что само наличие такого завершения выглядит странно и наводит на мысль, что архитектура плохо продумана.

А почему вы компьютер не выключаете, выдернув кабель из сети?)
А вот это как раз нарушает логику, заложенную в программы.


Название: Re: Модальное окно и закрытие приложения
Отправлено: DS_tm от Январь 13, 2010, 13:12
А почему вы компьютер не выключаете, выдернув кабель из сети?)
Неплохое сравнение. Причину пожалуйста. Ваше сравнение ничего не дает

Согласен, сравнение не очень. Имелось ввиду, что данный способ по моему слегка радикальный, а не то, что он приведет к утечкам памяти. Вообще полностью согласен с ilot, данное решение просто выглядет странно, а работает корректно.


Название: Re: Модальное окно и закрытие приложения
Отправлено: MoPDoBoPoT от Январь 13, 2010, 14:26
А как насчет того, что некоторые объекты что-то делают в своих деструкторах, например, сохраняют настройки?


Название: Re: Модальное окно и закрытие приложения
Отправлено: DS_tm от Январь 13, 2010, 16:09
А как насчет того, что некоторые объекты что-то делают в своих деструкторах, например, сохраняют настройки?

Тоже верно, еще деструкторы могут закрывать дескрипторы рессурсов, вообщем, как уже было сказано, лучше не использовать!