带有SVG的QIcon显示为黑色

时间:2017-09-08 08:20:47

标签: qt svg highdpi qicon

我需要使用我的Qt 5.9.1应用程序支持高DPI显示,我正在寻找一种解决方案来扩展应用程序使用的QIcons。

我目前只针对Windows 7和10。

到目前为止,对于非高DPI显示器(Windows 7),我使用.ico文件显示不同分辨率的图标。

我只有一些图标作为.png文件,因为它们仅用于单一分辨率。

对于高DPI显示器,在Windows 10下,当用户应用缩放应用程序的缩放系数时,图标最终会缩放但模糊。

我已经测试了添加以'@ 2x'后缀命名的高分辨率png文件,但缩放模糊了图标。

看到这个我认为我会尝试使用.svg文件,因为它们应该缩放,但是当它们与QIcons一起使用时它们会显示为黑色。这篇文章暗示QIcons不支持'填充'颜色:Qt support for coloring SVG in a QIcon

有没有人设法让.svg文件与QIcons合作?我甚至在.svg的正确轨道上支持高DPI显示并仍能获得清晰的图标?如果没有,那里的人采取了什么方法?

2 个答案:

答案 0 :(得分:3)

我在QT 5.6上遇到了同样的问题。我编辑了.svg文件,我将<style>替换为<style type="text/css">,它对我来说很好。

答案 1 :(得分:0)

这是我项目代码的一部分:

UI-&GT; pushButtonIcon-&GT;的setIcon(QIcon( “:/ simplebrowser.svg”));

我将* .svg图像设置为QPushButton()。图像将添加到项目中的资源中。

enter image description here