Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Avadon от Сентябрь 02, 2009, 07:59



Название: Отрисовка собственного окна
Отправлено: Avadon от Сентябрь 02, 2009, 07:59
Доброе утро всем! =)

Как отрисовать окно со своей рамкой и заголовком? И какой виджет должен быть в основе всего этого?


Название: Re: Отрисовка собственного окна
Отправлено: Rcus от Сентябрь 02, 2009, 08:37
Отключить системные декорации при помощи Qt::FramelessWindowHint и рисовать, использовать setContentsMargins чтобы виджеты не залезали на ваши декорации. Но под X11 нельзя запретить пользователю включить декорации.


Название: Re: Отрисовка собственного окна
Отправлено: Avadon от Сентябрь 02, 2009, 11:14
Отключить системные декорации при помощи Qt::FramelessWindowHint и рисовать, использовать setContentsMargins чтобы виджеты не залезали на ваши декорации. Но под X11 нельзя запретить пользователю включить декорации.

Спасибо, то что нужно. :) Но ещё парочка вопросов:

1) как сделать прозрачный фон окна? Использовать fillRect с прозрачной кистью?
2) Что производительней будет - рисовать руками или использовать SVG-графику? Если первое, то как там реализоваваются эффекты типа Glow, Shadow и т.д.


Название: Re: Отрисовка собственного окна
Отправлено: Rcus от Сентябрь 02, 2009, 11:27
1. смотреть QQ29 http://doc.trolltech.com/qq/
2. Если смотреть только на скорость то QPainter работает быстрее чем QtSvg, но сравнение разных уровней абстракции некорректно без учета трудозатрат при работе на низком уровне и возможностей оптимизации связанных с высоким уровнем.