Qt样式表选择器使用枚举属性

时间:2019-06-11 09:18:56

标签: qt enums css-selectors qtstylesheets

我正在尝试为按下的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;
}

(这是选项的汇总,我已经分别测试了它们)。

Documentation提到如果使用Q_ENUM声明枚举(如ToolButtonPopupMode那样),则应按名称而不是按值引用,但可以看到上面,选择器似乎并非如此。


问题:是否可以在样式表中使用此类枚举的名称作为选择器而不是枚举的值?


注意:我了解其他选项(例如具有更具表现力且独立于Qt的值的自定义属性)也可以使这项工作成功。我很好奇以上述方式使用枚举的可能性。

0 个答案:

没有答案