Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Larry от Февраль 18, 2016, 09:39



Название: [РЕШЕНО]QToolButton и popupmenu
Отправлено: Larry от Февраль 18, 2016, 09:39
Добрый день, форумчане.
Подскажите пожалуйста, как menu-indicator расположить внизу по центру кнопки. Все что ни пробовал - не помогло.
Сделал следующий стиль:
#tbShapes::menu-arrow
Код:
{
    image: none;
}
#tbShapes::menu-button
{
    image: none;
}
Кнопка переместилась вниз. но как теперь ее расположить по центру?
Пробовал сделать следующее:
Код:
#tbShapes::menu-indicator
{
    subcontrol-position: bottom center;
}
Но тогда получается, что отображаются оба индикатора справа и внизу по центру, а обрабатывается только правый, а нижний не реагирует. Подскажите, где я делаю ошибку? Спасибо.

P.S.: рисунках видно и первый вариант и второй.


Название: Re: QToolButton и popupmenu
Отправлено: poru от Февраль 18, 2016, 10:29
popupMode при этом какой?


Название: Re: QToolButton и popupmenu
Отправлено: Larry от Февраль 18, 2016, 10:37
MenuButtonPopup


Название: Re: QToolButton и popupmenu
Отправлено: poru от Февраль 18, 2016, 12:33
Как то так, пробовал на классическом стиле винды. Заипался цифры подгонять  :(
Код
C++ (Qt)
QToolButton[popupMode="1"] {
width: 60; height: 60; margin: 0 -12 20 0; padding: 0 20 0 0;
}
QToolButton::menu-button[popupMode="1"], QToolButton::menu-indicator[popupMode="1"] {
height: 20; width: 74; subcontrol-origin: margin; subcontrol-position: bottom;
}
 


Название: Re: QToolButton и popupmenu
Отправлено: Larry от Февраль 18, 2016, 13:36
Спасибо, попробую.


Название: Re: QToolButton и popupmenu
Отправлено: poru от Февраль 18, 2016, 15:59
А если так, то проблема с подгонкой ширины исчезает
Код
C++ (Qt)
QToolButton::menu-button[popupMode="1"], QToolButton::menu-indicator[popupMode="1"] {
position: absolute; left: 0; height: 20; subcontrol-origin: margin; subcontrol-position: bottom;
}
 

PS: А магическая цифра 12 (для margin) это константа PM_MenuButtonIndicator (для каждого стиля свой). Тогда надо так:
Код
C++ (Qt)
QToolButton[popupMode="1"] {
width: 60; height: 60; margin: 0 -12 20 0; padding: 0 12 0 0;
}
QToolButton::menu-button[popupMode="1"], QToolButton::menu-indicator[popupMode="1"] {
position: absolute; left: 0; height: 20; subcontrol-origin: margin; subcontrol-position: bottom;
}
 


Название: Re: QToolButton и popupmenu
Отправлено: Larry от Февраль 18, 2016, 16:55
Спасибо.
Получилось так, что пришлось отказаться от вызова меню, т.к. получается, что пользователь не поймет, что надо делать. Спасибо большое, добавлю к себе в копилку :) на будущее.


Название: Re: [РЕШЕНО]QToolButton и popupmenu
Отправлено: Larry от Февраль 19, 2016, 14:52
Добрый день.
Все-таки возникла необходимость в выпадающем меню в другом месте  :). Может кому пригодится и чтобы самому не забыть. Всего две строчки, чтобы перенести стрелочку вниз:
Код:
#pbSetOptions::menu-indicator
{
    subcontrol-origin:   padding;
    subcontrol-position: bottom center;
}