Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: wolfut от Июнь 27, 2011, 12:27



Название: Блокировка формы
Отправлено: wolfut от Июнь 27, 2011, 12:27
Можно ли как-нибудь заблокировать форму/виджет (что бы нельзя было нажать ни одной кнопки и.т.п) кроме как setEnable(false)?


Название: Re: Блокировка формы
Отправлено: Пантер от Июнь 27, 2011, 12:32
А чем setEnable не устроил?


Название: Re: Блокировка формы
Отправлено: wolfut от Июнь 27, 2011, 12:50
В Маке нет модальных форм. Мне нужно сделать что-то вроде модальной формы......основная при этом блокируюется. У меня некоторые элементы при изменение Enable меняют очертание, когда все сразу - получается не красиво.....поэтому SetEnable основного виджета не подходит.


Название: Re: Блокировка формы
Отправлено: kambala от Июнь 27, 2011, 13:18
как это нету?
Код
C++ (Qt)
QDialog dialog;
dialog.setWindowModality(Qt::WindowModal);
диалог красиво выезжает сверху и блокирует основной виджет


Название: Re: Блокировка формы
Отправлено: wolfut от Июнь 27, 2011, 14:40
Спасибо, раньше почему то не выходило. Делаю:

 QDialog* dialog = new QDialog(this);
 dialog->setWindowModality(Qt::WindowModal);
 dialog->move(this->frameGeometry().center() -   dialog->frameGeometry().center());
 dialog->show();

Или без третьей строки. Форма выводится не по центру, а притянутая к левому вехнему углу. Что не так, как вывести её по центру?


Название: Re: Блокировка формы
Отправлено: kambala от Июнь 27, 2011, 16:46
убрать вызов dialog->move() - вообще должно помочь


Название: Re: Блокировка формы
Отправлено: wolfut от Июнь 29, 2011, 14:03
нет, это я конечно пробовал. Если в конструкторе убрать this, форма выводится по центру, но основная форма не блокируется. Если стоит ссылка на родительскую форму - форма блокируется, но выводится слева. Как сделать так что бы и блокировалось и было по центу?


Название: Re: Блокировка формы
Отправлено: Пантер от Июнь 29, 2011, 14:05
Почитай про QDesktopWidget.


Название: Re: Блокировка формы
Отправлено: wolfut от Июнь 29, 2011, 14:10
Такс я понял в чём проблема. У основной формы стоит SetWindowFlag(Qt::ToolTip). Если убираю всё норм, но основная форма у меня произвольная (без кнопок закрыть итп). Как совместить модальность и ToolTip?


Название: Re: Блокировка формы
Отправлено: wolfut от Июнь 29, 2011, 14:16
То есть получается ситуация, из произвольной (без кнопок) формы с Qt::ToolTip или Qt::SplashScreen надо вызвать модальную форму. А главное, чтобы эта модальная форма была по центре. Как такое сделать?


Название: Re: Блокировка формы
Отправлено: wolfut от Июнь 29, 2011, 15:33
Всё, разобрался надо было заменить в основной форме Qt::ToolTip на Qt::Window|Qt:FramelessWindowHint