Qt样式表中的属性组合

4

我编写了Qt4(或Qt5)类MyButton,并定义了两个布尔属性,如下所示:

#include <QPushButton>

class MyButton : QPushButton
{
  Q_OBJECT
  Q_PROPERTY(bool property_1 READ property_1)
  Q_PROPERTY(bool property_2 READ property_2)
public:
  explicit MyButton(QWidget *parent = 0);
  ...
}

现在我想在外部文件中自定义应用程序样式表,以便在不同组合的属性下,MyButton具有不同的背景颜色。 单独来说这个是有效的:

MyButton[property_1="true"] { background-color: black }
MyButton[property_2="true"] { background-color: white }

那么问题来了:如何使用“and”、“or”和“not”操作符将几个属性组合在同一个条件中?

2个回答

14

最终我找到了解决方案。这个想法与CSS 属性选择相同。

因此,property_1="true" AND property_2="true" 的条件为:

MyButton[property_1="true"][property_2="true"] { background-color: green; } 

1
OR操作是通过选择器之间加逗号来实现的。
例如:
MyButton[property_1="true"],[property_2="true"] { background-color: red; }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接