【发布时间】:2012-04-22 04:02:44
【问题描述】:
您建议如何使用 QPixmap 处理 svg?
构造QPixmap(":/myfile.svg"); 然后调用scaled() 不起作用。 QPixmap 被像素化。
谢谢。
【问题讨论】:
您建议如何使用 QPixmap 处理 svg?
构造QPixmap(":/myfile.svg"); 然后调用scaled() 不起作用。 QPixmap 被像素化。
谢谢。
【问题讨论】:
您应该使用SVGRenderer 将其渲染到QImage。从那里您可以使用QPixmap::convertFromImage 转换为QPixmap。
【讨论】:
类似的东西:
QSvgRenderer renderer(svg_file_name);
QPixmap pm(width, height);
pm.fill(fill_color);
QPainter painter(&pm);
renderer.render(&painter, pm.rect());
【讨论】:
现在有了更简单的方法,不需要 SVG 模块
QIcon("filepath.svg").pixmap(QSize())
如此简单,工作正常。至少在我的情况下它起作用了。
【讨论】:
QIcon::addFile()方法也是现在隐式接受 SVG 文件,允许每个图标模式和状态与其自己的 SVG 文件相关联。