首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt支持在QIcon中着色SVG

Qt支持在QIcon中着色SVG
EN

Stack Overflow用户
提问于 2014-08-02 22:40:08
回答 2查看 2.3K关注 0票数 3

Qt似乎不支持SVG中path标签上的描边/填充选项:

代码语言:javascript
运行
复制
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
   <path fill="green" stroke="red" d="M2 0c1 2-2 3-2 5s2 3 2 3c-.98-1.98 2-3 2-5s-2-3-2-3zm3 3c1 2-2 3-2 5h3c.4 0 1-.5 1-2 0-2-2-3-2-3z" />
</svg>

我使用QIcon通过Qt的资源加载器将其加载到我的应用程序中:

代码语言:javascript
运行
复制
QIcon icon(":/svgs/fire.svg");

无论SVG属性如何,它都显示为黑白。当我在Firefox中打开SVG时,颜色是受欢迎的。(注意,我也尝试过使用十六进制值作为颜色参数)。

我是不是忽略了什么?在Qt中有没有其他方法给SVG/QIcons上色?

EN

回答 2

Stack Overflow用户

发布于 2014-08-05 02:39:18

对我来说,解决方案是将SVG加载为QImage...然而,我发现图像是以某种默认大小(相当小)加载的。当我调用QImage::scaleToHeight时,它会缩放它,就好像它是一个光栅图像,而不是一个向量(因此,有像素化等)。

因此,现在我正在尝试弄清楚在将SVG加载为QImage时如何指定大小。如果我找到解决方案我会报告的..。

票数 2
EN

Stack Overflow用户

发布于 2014-08-08 04:00:17

我也有类似的问题,但是来自Qt的另一部分..我正在使用QAction在QToolBar上创建一个按钮。当我将QAction的图标设置为SVG资源时,我得到了一个像素化的图像。

我正在运行一台视网膜显示机,尝试放大我的svg坐标,并更改我的显示dpi,但两者都不起作用。

我得出的结论是,Qt隐式地将矢量图像转换为QToolBar QAction图标的光栅图像。我不知道这对你有没有帮助,但我觉得值得一提的是。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25096162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档