Могу ли я изменить пользовательские динамические свойства из таблицы стилей (qss)? - PullRequest
1 голос
/ 27 сентября 2019

У меня есть пользовательский 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;

Это НЕ работает, любойшанс сделать это?

1 Ответ

1 голос
/ 27 сентября 2019

Как Документы указывают:

Настройка свойств 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.

...