如何使用 qss/css 设置单个 QToolButton 的样式
How to style a single QToolButton using qss/css
我有一个带有多个工具按钮的工具栏,我尝试将样式应用于单个按钮:
QToolButton#button_name
{
border: 3px solid #FF00FF;
}
我认为这只会将粉红色边框应用到名称为 "button_name" 的一个按钮,但它什么也没做。
如果我取消“#button_name”,我可以将样式应用于工具栏上的所有按钮。所以我想知道是否有针对特定 QToolButton 的单独设置样式
干杯
您应该更改 objectName
所需的小部件,而不是 QAction
。您可以使用 widgetForAction()
方法获取此小部件。例如:
QToolBar tool;
QAction * foo = new QAction("foo",&tool);
QAction * bar = new QAction("bar",&tool);
QAction * baz = new QAction("baz",&tool);
tool.addAction(foo);
tool.addAction(bar);
tool.addAction(baz);
tool.widgetForAction(bar)->setObjectName("unique");
tool.show();
qApp->setStyleSheet("QToolButton#unique{border: 3px solid #FF00FF;}");
结果:
我有一个带有多个工具按钮的工具栏,我尝试将样式应用于单个按钮:
QToolButton#button_name
{
border: 3px solid #FF00FF;
}
我认为这只会将粉红色边框应用到名称为 "button_name" 的一个按钮,但它什么也没做。
如果我取消“#button_name”,我可以将样式应用于工具栏上的所有按钮。所以我想知道是否有针对特定 QToolButton 的单独设置样式
干杯
您应该更改 objectName
所需的小部件,而不是 QAction
。您可以使用 widgetForAction()
方法获取此小部件。例如:
QToolBar tool;
QAction * foo = new QAction("foo",&tool);
QAction * bar = new QAction("bar",&tool);
QAction * baz = new QAction("baz",&tool);
tool.addAction(foo);
tool.addAction(bar);
tool.addAction(baz);
tool.widgetForAction(bar)->setObjectName("unique");
tool.show();
qApp->setStyleSheet("QToolButton#unique{border: 3px solid #FF00FF;}");
结果: