Qt似乎不支持SVG中path标签上的描边/填充选项:
<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的资源加载器将其加载到我的应用程序中:
QIcon icon(":/svgs/fire.svg");
无论SVG属性如何,它都显示为黑白。当我在Firefox中打开SVG时,颜色是受欢迎的。(注意,我也尝试过使用十六进制值作为颜色参数)。
我是不是忽略了什么?在Qt中有没有其他方法给SVG/QIcons上色?
发布于 2014-08-05 02:39:18
对我来说,解决方案是将SVG加载为QImage...然而,我发现图像是以某种默认大小(相当小)加载的。当我调用QImage::scaleToHeight时,它会缩放它,就好像它是一个光栅图像,而不是一个向量(因此,有像素化等)。
因此,现在我正在尝试弄清楚在将SVG加载为QImage时如何指定大小。如果我找到解决方案我会报告的..。
发布于 2014-08-08 04:00:17
我也有类似的问题,但是来自Qt的另一部分..我正在使用QAction在QToolBar上创建一个按钮。当我将QAction的图标设置为SVG资源时,我得到了一个像素化的图像。
我正在运行一台视网膜显示机,尝试放大我的svg坐标,并更改我的显示dpi,但两者都不起作用。
我得出的结论是,Qt隐式地将矢量图像转换为QToolBar QAction图标的光栅图像。我不知道这对你有没有帮助,但我觉得值得一提的是。
https://stackoverflow.com/questions/25096162
复制相似问题