如何使用样式表更改QPushButton的图标?

8

在使用样式表的情况下,是否可以设置和更改QPushButton上的图标?

我需要在基于Windows的白标Qt4.5应用程序中实现这一功能,以便客户可以使用样式表进行自定义。

3个回答

8
你可以通过更改QAbstractButton-property来添加图标。只需使用以下代码:
QAbstractButton {
    qproperty-icon: theme_url("/button_action/add");
}

类型选择器QAbstractButton,允许你设置所选对象及其所有子类的样式。

由于QPushButton扩展了QAbstractButton,这将起作用。(当然,你也可以在此处使用QPushButton类型选择器)。

有关如何使用选择器的更多信息,我发现这里非常有帮助。

如果你想了解更多关于按钮属性的信息,请参考Qt文档这里

附:如果你想在按钮被点击后更改图标,请使用:

qproperty-icon: url(":/Icons/before_click.png") off,
                url(":/Icons/after_click.png") on ;

有人知道开/关语法在哪里有文档吗?我以前从未见过这个。 - Andreas Haferburg

0

好的。

border-image: url(/url/to/image);

1
谢谢回复。这似乎将我的QPushButton的背景设置为图像而不是QPushButton的图标。你有什么想法我做错了什么吗?谢谢。 - Robin
哦,我以为使用 background-image: 设置背景,而 set the icon 则设置图标。看来我需要再试一下,我的记忆力似乎不如以前了。 - Brian Roach
看起来你需要调整图标的大小、对齐方式和文本对齐方式,以便一切正确地布局。我现在没有时间去处理它,但是我通过几次谷歌搜索阅读到的所有内容都表明,border-image: 是样式表中有关图标的属性。 - Brian Roach
您可以使用 border-image 来更改按钮的外观,例如使用点状边框或装饰图案。这与图标无关。 - Andreas Haferburg

-2

2
不,这会在按钮中心添加一个新图标。 - 0xbaadf00d

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