如何使用 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;}");

结果: