为 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{...}");
我有一个像下面这样的 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{...}");