如何使用qss/css样式化单个QToolButton

3

我有一个带有多个工具按钮的工具栏,我尝试使用以下方式为单个按钮应用样式:

QToolButton#button_name
{
    border: 3px solid #FF00FF;
}

我认为这应该只会将名称为“button_name”的按钮应用粉色边框,但实际上没有任何效果。
如果我去掉“#button_name”,我可以将样式应用于工具栏上的所有按钮。因此,我想知道是否有办法为特定的QToolButton单独设置样式。
谢谢。
1个回答

4
您应该更改所需小部件的objectName,而不是QActionobjectName。您可以使用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,而是声明它为 QAction,然后将其添加到工具栏中,所以不幸的是这种方法行不通,我试过给该操作设置对象名称,但这也不起作用。 - AngryDuck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接