crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> WindowFlags для виджетов, содержащихся в QMdiArea
qtshnik
  опции профиля:
сообщение 3.12.2010, 11:53
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 3.12.2010
Пользователь №: 2240

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добавляю в 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


В чем дело, как все-таки изменить внешний вид окон?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BRE
  опции профиля:
сообщение 3.12.2010, 18:39
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Попробуй так:
    child = new MyWidget( ... );

    QMdiSubWindow *w = mdiArea.addSubWindow( child );
    w->setWindowFlags( Qt::SubWindow | Qt::FramelessWindowHint );
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
qtshnik
  опции профиля:
сообщение 3.12.2010, 20:06
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 3.12.2010
Пользователь №: 2240

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(BRE @ 3.12.2010, 18:39) *
Попробуй так:
    child = new MyWidget( ... );

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



Круто! Получилось! Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 5.12.2024, 2:27