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

时间:2018-03-15 22:04:56

标签: c++ qt private qstylesheet

我有一个类似下面的课程:

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的某些属性(如背景颜色),而不是我的GUI周围的其他QPushButton

我已经看过如何设置stylesheet for subclasses,但我找不到为类的特定私有成员设置样式表的方法。有没有办法实现它?

2 个答案:

答案 0 :(得分:2)

根据eyllanesc的建议,set an object name到您的按钮,并使用样式表中的ID selector

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

答案 1 :(得分:1)

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

这将仅为m_button

设置背景颜色