Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: qtист от Ноябрь 26, 2009, 12:28



Название: Вертикальная полоса слева в QMenu
Отправлено: qtист от Ноябрь 26, 2009, 12:28
Как можно раскрасить вертикальную полоску слева
от пунктов меню(там где иконки рисуются)?
 :'(


Название: Re: Вертикальная полоса слева в QMenu
Отправлено: spectre71 от Ноябрь 26, 2009, 12:31
Как можно раскрасить вертикальную полоску слева
от пунктов меню(там где иконки рисуются)?
 :'(

Какую вертикальную полоску? Ты о чем?


Название: Re: Вертикальная полоса слева в QMenu
Отправлено: qtист от Ноябрь 26, 2009, 12:39
В ниспадающее меню,где перечисляются пункты,сепараторы -
слева есть пустое место,где рисуются/не рисуются иконки.
его и надо раскрасить.
Теперь понятно  ::)


Название: Re: Вертикальная полоса слева в QMenu
Отправлено: fdn от Ноябрь 26, 2009, 12:52
Понятно, но как раскрасить - хз. Я так полагаю нужно копать в сторону css.


Название: Re: Вертикальная полоса слева в QMenu
Отправлено: spectre71 от Ноябрь 26, 2009, 13:02
В ниспадающее меню,где перечисляются пункты,сепараторы -
слева есть пустое место,где рисуются/не рисуются иконки.
его и надо раскрасить.
Теперь понятно  ::)

Боюсь не так просто. :-[
Видимо надо делать свой стиль и свою отрисовку ControlElement для CE_MenuItem, CE_MenuEmptyArea
drawControl(ControlElement element, const QStyleOption *opt, QPainter *p,  const QWidget *w = 0) const = 0;

Посмотри исходники "qmenu.cpp" : void QMenu::paintEvent(QPaintEvent *e)