Qt 样式表中的属性组合

问题描述 投票:0回答:2

我编写了 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 }

那么问题是:如何通过“与”、“或”、“非”运算将相同条件下的几个属性组合起来?

c++ qt qtstylesheets
2个回答
15
投票

思路与CSS属性选择相同。

因此

property_1="true"
AND
property_2="true"
条件为:

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

2
投票
  • AND 运算通过以下语法实现:
MyButton[property_1="true"][property_2="true"] { background-color: green; } 
  • OR 运算是通过选择器之间的逗号实现的。

例如:

MyButton[property_1="true"],[property_2="true"] { background-color: red; }
© www.soinside.com 2019 - 2024. All rights reserved.