【问题标题】:Can I change custom dynamic properties from a stylesheet (qss)?我可以从样式表 (qss) 更改自定义动态属性吗?
【发布时间】:2019-09-27 00:11:07
【问题描述】:

我有一个自定义的QFrame这样的

//! Widget which displays a audio level meter, indicating the
//! level and peak levels of the window of audio samples most recently analyzed
class BLACKGUI_EXPORT CLevelMeter : public QFrame
{
    Q_OBJECT
    Q_PROPERTY(QColor lowColor  READ getLowColor  WRITE setLowColor)
    Q_PROPERTY(QColor highColor READ getHighColor WRITE setHighColor)
    Q_PROPERTY(QColor peakColor READ getPeakColor WRITE setPeakColor)

我想像这样在qss 样式表中设置这些颜色

BlackGui--CLevelMeter {
  lowColor: blue;
  border: 1px solid grey;
  border-radius: 5px;

这不起作用,有机会这样做吗?

【问题讨论】:

    标签: c++ qt qtstylesheets qframe


    【解决方案1】:

    正如the docs 指出的那样:

    设置 QObject 属性

    从 4.3 及以上,任何可设计的 Q_PROPERTY 可以使用 qproperty-<property name> 语法设置。

    例如,

    MyLabel { qproperty-pixmap: url(pixmap.png); }
    MyGroupBox { qproperty-titleColor: rgb(100, 200, 100); }
    QPushButton { qproperty-iconSize: 20px 20px; }
    

    如果属性引用了一个用 Q_ENUMS 声明的枚举,你应该 按名称引用其常量,即不是它们的数值。

    您必须使用qproperty-lowColor

    【讨论】:

      猜你喜欢
      • 2020-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      相关资源
      最近更新 更多