Qt 对 SVG 的支持

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值