crossplatform.ru

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


  Ответ в WindowFlags для виджетов, содержащихся в QMdiArea
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
qtshnik Дата 3.12.2010, 20:06
 
Цитата(BRE @ 3.12.2010, 18:39) *
Попробуй так:
    child = new MyWidget( ... );

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



Круто! Получилось! Спасибо!
BRE Дата 3.12.2010, 18:39
  Попробуй так:
    child = new MyWidget( ... );

    QMdiSubWindow *w = mdiArea.addSubWindow( child );
    w->setWindowFlags( Qt::SubWindow | Qt::FramelessWindowHint );
qtshnik Дата 3.12.2010, 13:20
  Я несколько вариантов пробовал
Пробовал добавлять QMdiSubWidget и в него засовывать виджет:
    QWidget * newWidget  = new QWidget;
    ...
    QMdiSubWindow *sw = new QMdiSubWindow;
    sw->setWindowFlags(Qt::SubWindow | Qt::CustomizeWindowHint);
    sw->setWidget(newWidget);
    newWidget->setParent(sw);
    pma->addSubWindow(sw);


Пробовал добавлять виджет в QMdiArea без QMdiSubWidget:
    QWidget * newWidget  = new QWidget(pma);
    ...
    newWidget->setWindowFlags(Qt::Tool | Qt::CustomizeWindowHint);
    pma->addSubWindow(newWidget);


Все равно рисуется стандартная строка заголовка (синяя для WinXP, например) одной и той же высоты. В случае первого кода, правда, нет кнопок закрытия/сворачивания/разворачивания
wiz29 Дата 3.12.2010, 12:23
  Покажи пример кода где меняются флаги для QMdiSubwindow
BRE Дата 3.12.2010, 12:22
  А ты для кого этот флаг устанавливаешь, для своего виджета или для его QMdiSubWindow?
qtshnik Дата 3.12.2010, 11:53
  Добавляю в 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


В чем дело, как все-таки изменить внешний вид окон?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 16:49