QT SVG
Qt 提供了一些类去支持 SVG 的渲染或者将绘图设备的内容生成 SVG文件。
使用 SVG 的时候需要包含相应头文件:
#include <QtSvg>
同时需要包含 SVG 模块:
QT += svg
相关类
QSvgWidget
用来在 widget 上显示 SVG 文件。
QSvgRenderer
SVG 渲染器。
QLabel label;
// 读取 SVG 文件
QSvgRenderer svg_render(QString("D://QtLearnSpace//qt_svg_test//architecture.svg"));
QPixmap pixmap(800, 800);
pixmap.fill(Qt::transparent);
创建 QPainter 对象并将其与 svg_render 关联
QPainter painter;
painter.begin(&pixmap);
svg_render.render(&painter);
painter.end();
label.setPixmap(pixmap);
QSvgGenerator
绘图设备生成 SVG 文件。
// 创建一个 QSvgGenerator 对象
QSvgGenerator generator;
// 设置要保存的 SVG 文件名
generator.setFileName("output.svg");
// 设置 SVG 图像的大小和分辨率
generator.setSize(QSize(200, 200));
generator.setViewBox(QRect(0, 0, 200, 200));
generator.setResolution(72); // 分辨率为 72 DPI
// 创建 QPainter 对象并将其与 QSvgGenerator 关联
QPainter painter;
painter.begin(&generator);
// 使用 QPainter 绘制图形(例如,画一个矩形)
painter.setBrush(Qt::blue);
painter.drawRect(10, 10, 180, 180);
// 结束绘制并将结果保存到 SVG 文件
painter.end();
QGraphicsSvgItem
可以渲染 SVG 文件的 QGraphicsItem。