Russian Qt Forum
Августа 28, 2025, 01:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: запретить окну spontaneous() Resize/Move  (Прочитано 4649 раз)
drsm
Гость
« : Февраля 18, 2009, 14:24 »

есть QMainWindow, над ним висит QDockWidget который фильтрует события главного окна и динамически изменяет за ним положение и размер.
вопрос следующий, какие события у доквиджета мне нужно отфильтровать чтобы запретить его перемещение/ресайз мышью, те пользователем?
Записан
Dendy
Гость
« Ответ #1 : Февраля 18, 2009, 14:45 »

Я такое делал убирая у дока заголовок окна как таковой. А по другому оконный менеджер тягать его не сможет. Для иксов можно попробовать установить Qt::X11BypassWindowManagerHint. Поиграться с другими флагами.
Записан
drsm
Гость
« Ответ #2 : Февраля 18, 2009, 16:24 »

спасибо, move поборол так:
dock->setTitleBarWidget(new QWidget(parent));

а resize так
Код
C++ (Qt)
void topLevelChanged_Signal_Handler(bool isFloating)
{
if (isFloating) {
QRect r = getGeometryFromParent();
setGeometry(r);
setFixedSize(r.width(), r.height());
} else {
setMinimumSize(QSize(0, 0));
setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
}
}

осталось только как-то убрать мышиные хинты при наведении на рамку.
подскажите плс.
« Последнее редактирование: Февраля 18, 2009, 18:03 от drsm » Записан
Kolobok
Гость
« Ответ #3 : Февраля 18, 2009, 21:12 »

Код:
layout()->setSizeConstraint( QLayout::SetFixedSize );
Записан
drsm
Гость
« Ответ #4 : Февраля 19, 2009, 09:58 »

Код:
layout()->setSizeConstraint( QLayout::SetFixedSize );

это неподходит, тк тогда через setGeometry размер не ставится.
да и курсор все равно при наведении на фрейм меняется (.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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