Qt样式表中的属性组合

Properties combination in Qt stylesheet

本文关键字:属性 组合 样式 Qt      更新时间:2023-10-16

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

那么问题是:如何在相同的条件下使用"answers","或"answers"非"操作组合几个属性?

最后我得到了解决方案。其思想与CSS属性选择相同。

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

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