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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: WindowFlags для виджетов, содержащихся в QMdiArea  (Прочитано 4914 раз)
qtshnik
Гость
« : Декабрь 03, 2010, 11:06 »

Добавляю в QMdiArea виджеты, при этом хочу, чтобы они не были стандартного типа (с флагом Qt::Window или Qt::SubWindow). Хотелось бы, чтобы они выглядели
как окно без заголовка, ну или хотя бы как окно с уменьшенным заголовком (как при использовании флага Qt::Tool). Проблема в том, что не получается применить ни флаг Qt::CustomizeWindowHint, ни флаг Qt::Tool. Я пробовал и в конструктор виджета их передавать, и в функцию setWindowFlags, а общий вид окна все равно не меняется. Такое впечатление, что при создании виджета в рамках QMdiArea в него жестко вшивается флаг Qt::SubWindow, и его нельзя поменять. Хотя в Assistant в описании класса QMdiArea написано
Цитировать
Unlike the window managers for top-level windows, all window flags (Qt::WindowFlags) are supported by QMdiArea as long as the flags are supported by the current widget style

В чем дело, как все-таки изменить внешний вид окон?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Декабрь 03, 2010, 11:10 »

Цитировать
В чем дело, как все-таки изменить внешний вид окон?
Никак. Qt MDI создан не для этого.
Записан

Qt 5.11/4.8.7 (X11/Win)
qtshnik
Гость
« Ответ #2 : Декабрь 06, 2010, 11:37 »

Решение вот.
Код:
    child = new MyWidget( ... );

    QMdiSubWindow *w = mdiArea.addSubWindow( child );
    w->setWindowFlags( Qt::SubWindow | Qt::FramelessWindowHint );

Работает флаг Qt::FramelessWindowHint, хотя про него в документации сказано
Цитировать
There are also a number of flags which you can use to customize the appearance of top-level windows. These have no effect on other windows
а окно QMdiSubWindow, по логике вещей, не должно являться  "top-level window"
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Декабрь 06, 2010, 13:07 »

Просто интересно,  а для чего такие окна могут вообще понадобиться?
Записан

Qt 5.11/4.8.7 (X11/Win)
qtshnik
Гость
« Ответ #4 : Декабрь 06, 2010, 14:57 »

есть мысля загнать в заголовок каждого подокна панель инструментов с кнопками, а может и еше чего. Насколько смог понять, единственный способ это сделать - создать свою строку заголовка
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Декабрь 06, 2010, 15:51 »

Тогда придётся самому заморачиваться с move/resize...
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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