Russian Qt Forum
Сентябрь 30, 2024, 16:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Блокировка формы  (Прочитано 6808 раз)
wolfut
Гость
« : Июнь 27, 2011, 12:27 »

Можно ли как-нибудь заблокировать форму/виджет (что бы нельзя было нажать ни одной кнопки и.т.п) кроме как setEnable(false)?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июнь 27, 2011, 12:32 »

А чем setEnable не устроил?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
wolfut
Гость
« Ответ #2 : Июнь 27, 2011, 12:50 »

В Маке нет модальных форм. Мне нужно сделать что-то вроде модальной формы......основная при этом блокируюется. У меня некоторые элементы при изменение Enable меняют очертание, когда все сразу - получается не красиво.....поэтому SetEnable основного виджета не подходит.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #3 : Июнь 27, 2011, 13:18 »

как это нету?
Код
C++ (Qt)
QDialog dialog;
dialog.setWindowModality(Qt::WindowModal);
диалог красиво выезжает сверху и блокирует основной виджет
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
wolfut
Гость
« Ответ #4 : Июнь 27, 2011, 14:40 »

Спасибо, раньше почему то не выходило. Делаю:

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

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

Сообщений: 4744



Просмотр профиля WWW
« Ответ #5 : Июнь 27, 2011, 16:46 »

убрать вызов dialog->move() - вообще должно помочь
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
wolfut
Гость
« Ответ #6 : Июнь 29, 2011, 14:03 »

нет, это я конечно пробовал. Если в конструкторе убрать this, форма выводится по центру, но основная форма не блокируется. Если стоит ссылка на родительскую форму - форма блокируется, но выводится слева. Как сделать так что бы и блокировалось и было по центу?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Июнь 29, 2011, 14:05 »

Почитай про QDesktopWidget.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
wolfut
Гость
« Ответ #8 : Июнь 29, 2011, 14:10 »

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

То есть получается ситуация, из произвольной (без кнопок) формы с Qt::ToolTip или Qt::SplashScreen надо вызвать модальную форму. А главное, чтобы эта модальная форма была по центре. Как такое сделать?
« Последнее редактирование: Июнь 29, 2011, 14:18 от wolfut » Записан
wolfut
Гость
« Ответ #10 : Июнь 29, 2011, 15:33 »

Всё, разобрался надо было заменить в основной форме Qt::ToolTip на Qt::Window|Qt:FramelessWindowHint
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.085 секунд. Запросов: 23.