Russian Qt Forum

Qt => Общие вопросы => Тема начата: ninjaproger от Март 10, 2010, 15:15



Название: Дочерний диалог при выходе закрывает все приложение... Как не допустить этого?
Отправлено: ninjaproger от Март 10, 2010, 15:15
Помогите плз...

Столкнулся с такой проблемой:
При запуске приложения создается главный диалог
который прячется в трэй. При нажатии на определенные пункты меню в трее
открывается дочерний диалог с настройками, при нажатии на стандартные кнопки
ОK или Cancel этот диалог закрывается но в итоге закрывается все приложение.
Как сделать так что бы закрывался только диалог настроек?

Вот так создается и запускается этот диалог:

        ClipForm * clipform =  new ClipForm(this);
        clipform->setModal(true);

        if(clipform->exec()== QDialog::Accepted)
        {
            clipTitle = clipform->getTitle();
            postScreenShot();
        }

        delete clipform;



Название: Re: Дочерний диалог при выходе закрывает все приложение... Как не допустить этого?
Отправлено: BRE от Март 10, 2010, 15:17
void   QApplication::setQuitOnLastWindowClosed ( bool quit )


Название: Re: Дочерний диалог при выходе закрывает все приложение... Как не допустить этого?
Отправлено: ninjaproger от Март 10, 2010, 15:20
Аллилуя!!!

вставил в мэйне перед a->exec();
помогло

огромное спасибо!


Название: Re: Дочерний диалог при выходе закрывает все приложение... Как не допустить этого?
Отправлено: IGHOR от Март 11, 2010, 19:08
void   QApplication::setQuitOnLastWindowClosed ( bool quit )

Это поможет если надо отключить выход из программы для всех диалогов,
если надо настроить отдельный виджет на закрытие программы то можно использовать:

setAttribute(Qt::WA_QuitOnClose,true);
setAttribute(Qt::WA_QuitOnClose,false);