我编写了 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 }
那么问题是:如何通过“与”、“或”、“非”运算将相同条件下的几个属性组合起来?
思路与CSS属性选择相同。
因此
property_1="true"
AND property_2="true"
条件为:
MyButton[property_1="true"][property_2="true"] { background-color: green; }
MyButton[property_1="true"][property_2="true"] { background-color: green; }
例如:
MyButton[property_1="true"],[property_2="true"] { background-color: red; }