Russian Qt Forum

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



Название: Проблема модальности...
Отправлено: ninjaproger от Март 12, 2010, 12:16
Проблема в следующем:

Создается главный виджет который прячется в трэй
из него запускаются различные дочерние диалоги.
Как сделать так, что бы они были полностью модальными,
т.е. перекрывали все обращения к программе до их закрытия?
setModal(true) не помогает и при открытии дочернего диалога не блокируется
меню главного в трее.


Название: Re: Проблема модальности...
Отправлено: voronElf от Март 12, 2010, 12:54
Попробуй setWindowModality(Qt::ApplicationModal). QWidget-а метод.


Название: Re: Проблема модальности...
Отправлено: ninjaproger от Март 12, 2010, 13:04
Вроде не помогает   :-\

Вот слот на запуск пункта меню "Options" главного окна в трее :

void Widget::runOptions()
{
    optionsDialog = new OptionsDialog(this);
    optionsDialog->setWindowModality(Qt::ApplicationModal);
    optionsDialog->exec();

    delete optionsDialog;
}


в итоге диалог опций запускается, но если опять щелкнуть по менюшке в трее
не закрывая это диалог, винда выдает ошибку: http://clip2net.com/page/m0/4536905 (http://clip2net.com/page/m0/4536905)
и закрывает приложение...





Название: Re: Проблема модальности...
Отправлено: SABROG от Март 12, 2010, 23:56
Выложи исходники целиком.


Название: Re: Проблема модальности...
Отправлено: villager от Март 19, 2010, 10:59
насчет трея не знаю, но добивался модальности  для окон в QMdiArea, делая все окна (кроме активного) disabled
может и с треем прокатит такой подход?