如何在 Qt 应用程序中使用样式表更改 QPushButton 图标

Posted

技术标签:

【中文标题】如何在 Qt 应用程序中使用样式表更改 QPushButton 图标【英文标题】:How to change QPushButton icon using stylesheets in Qt app 【发布时间】:2010-04-20 14:28:35 【问题描述】:

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

我需要这个基于 Windows 的白标 Qt4.5 应用程序,客户使用样式表进行样式化。

谢谢。

【问题讨论】:

【参考方案1】:

回复有点晚了,但万一其他人通过谷歌弹出这个;

您可以通过更改 QAbstractButton 属性来添加图标。只需使用:

QAbstractButton 
     qproperty-icon: theme_url("/button_action/add");

类型选择器 (QAbstractButton) 使您能够设置所选对象所有其子类的样式。由于 QProcessButton 扩展了 QAbstractButton,这将起到作用。 (当然你也可以在这里使用QPushButton 类型选择器)。

有关如何使用选择器的更多信息,我发现this 很有帮助。

如果您想了解有关按钮属性的更多信息,请参阅 QT 文档here。

PS。如果要更改图标,单击按钮后,请使用

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

【讨论】:

有人知道开/关语法记录在哪里吗?我以前从未见过这种情况。【参考方案2】:

是的。

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

【讨论】:

感谢您的回复。这似乎将我的 QPushButton 的背景设置为图像而不是 QPushButton 的图标。任何想法我做错了什么?谢谢。 呵呵,我以为是设置图标,background-image:设置背景。我不得不玩它,显然我的记忆力不像以前那样了。 看起来您必须设置图标大小、对齐方式和文本对齐方式的样式,以便正确布局。我现在没有时间搞砸它,但是我通过几个谷歌搜索读到的所有内容都说border-image: 是关于样式表的图标。 您可以使用border-image 更改按钮的外观,例如。 G。带有虚线边框或装饰品。它与图标无关。【参考方案3】:

你可以使用:

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

参见http://doc.qt.io/qt-5/stylesheet-reference.html#image-prop 和http://doc.qt.io/qt-5/stylesheet-customizing.html#box-model。

【讨论】:

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

以上是关于如何在 Qt 应用程序中使用样式表更改 QPushButton 图标的主要内容,如果未能解决你的问题,请参考以下文章

sphinx - 如何更改文档样式表

如何创建自己的使用 qss 的 qt 小部件

Qt 样式表鼠标滑过按钮更改Text文本颜色

如何在PeopleSoft中找到并更改默认样式表名称

在 Qt 中为整个小部件设置样式表

如何在 OSX 上设置 Qt 的标签栏背景样式