Селектор таблицы стилей Qt с использованием перечисленных свойств - PullRequest
1 голос
/ 11 июня 2019

Я пытаюсь установить различные визуальные стили для нажатой QToolButton в зависимости от того, отображает ли оно меню.

В моем коде кнопки инструментов, имеющие меню, устанавливают свое свойство popupMode на QToolButton::InstantPopup (значение 2), в то время как кнопки без связанного меню сохраняют значение по умолчанию (QToolButton::DelayedPopup, значение 0).

Я пытался использовать такое свойство по-разному, как селектор, но только последний (QToolButton[popupMode="2"]) сработало:

/* Not working */
QToolButton[popupMode=InstantPopup]:pressed,
QToolButton[popupMode="InstantPopup"]:pressed,
QToolButton[popupMode="QToolButton::InstantPopup"]:pressed,
QToolButton[popupMode="QToolButton--InstantPopup"]:pressed,
QToolButton[qproperty-popupMode=InstantPopup]:pressed,
QToolButton[qproperty-popupMode="InstantPopup"]:pressed,
QToolButton[qproperty-popupMode="QToolButton::InstantPopup"]:pressed,
QToolButton[qproperty-popupMode="QToolButton--InstantPopup"]:pressed,
QToolButton[qproperty-popupMode="2"]:pressed
{
    background-color: blue;
}
/* Working */
QToolButton[popupMode="2"]:pressed,
{
    background-color: red;
}

(это компиляция опций, я тестировал их отдельно).

Документация упоминает, что если enumобъявляется с использованием Q_ENUM (как это делает ToolButtonPopupMode), тогда на него следует ссылаться по имени, а не по значению, но, как видно выше, кажется, что это не относится к селекторам.


Вопрос: Можно ли использовать имя перечисления в качестве селектора в таблице стилей вместо значения перечисления?


Примечание: я понимаю, что другиетакие опции, как пользовательские свойства с более выразительным Qt-независимымзначение может сделать работу тоже.Мне любопытно о возможности использования перечисления описанным способом.

...