为 QWidget 的私有成员设置样式表

Set stylesheet for private member of a QWidget

我有一个像下面这样的 class:

class BigButton : public QWidget {

  Q_OBJECT

public:

  BigButton(QWidget* parent = nullptr);
  virtual ~BigButton() = default;
  void setSvgImagePath(const QString& imagePath);
  void setLabel(const QString& label) override;

private:

  QLabel* m_label;
  QSvgWidget* m_svgImage;
  QPushButton* m_button;
};

我想为我的应用程序创建一个样式表,允许设置私有 QPushButton 成员 m_button 的一些属性(如背景颜色),但不允许其他 QPushButton 成员我的图形用户界面。

我已经了解如何设置 stylesheet for subclasses,但我找不到为 class 的特定私有成员设置样式表的方法。有办法实现吗?

 m_button->setStyleSheet(m_button->styleSheet().append("background-color: rgb(9, 91, 255);"));

这将仅为 m_button

设置背景颜色

根据 eyllanesc 的建议,set an object name to your button, and use the ID selector 在您的样式表中:

m_button->setObjectName("myButton");

widget->setStyleSheet("QPushButton#myButton{...}");