Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Silver_swift от Января 31, 2012, 10:17



Название: Qt::ApplicationModal срабатывает только один раз
Отправлено: Silver_swift от Января 31, 2012, 10:17
Работаю с окошком унаследованным от QWidget. Если this->setWindowModality(Qt::ApplicationModal); вызвать в конструкторе, то окошко станет модальным. Если же вызывать эту функцию из любого другого места программы окно не становится модальным. Почему так?
Код:
    if (arg)
        this->setWindowModality(Qt::ApplicationModal);
    else
        this->setWindowModality(Qt::NonModal);


Название: Re: Qt::ApplicationModal срабатывает только один раз
Отправлено: mutineer от Января 31, 2012, 11:13
А секрет кроется в чтении документации
Цитировать
Changing this property while the window is visible has no effect; you must hide() the widget first, then show() it again.


Название: Re: Qt::ApplicationModal срабатывает только один раз
Отправлено: Silver_swift от Января 31, 2012, 13:55
Здорово, зарабоало, спасибо.

Но я вообще-то честно смотрел Qt Assistant  и это все что мне удалось найти:
Цитировать
Qt::ApplicationModal   2   The window is modal to the application and blocks input to all windows.
Раздел Qt Namespace. Версия 4.7.

Какую документацию вы читаете?


Название: Re: Qt::ApplicationModal срабатывает только один раз
Отправлено: mutineer от Января 31, 2012, 14:03
http://doc.crossplatform.ru/qt/4.7.x/qwidget.html#windowModality-prop

Ну либо в ассистанте дока по классу QWidget функции setWindowModality


Название: Re: Qt::ApplicationModal срабатывает только один раз
Отправлено: Silver_swift от Января 31, 2012, 14:34
Тоже читал, но не внимательно. Спасибо :)