当前位置: 首页 > article >正文

Qt与SVG

Qt之SVG:Qt简单使用SVG的介绍_qt svg-CSDN博客

这是一个简单的svg文件

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="100" cy="50" r="40" stroke="black"
  stroke-width="2" fill="green" />
</svg>

svg标签中包含了一个circle标签,circle元素的属性定义了这个圆的特性。

圆心:(100,50),半径:40

----------------------------------

1.

QGraphicsSvgItem:可用于呈现SVG文件内容的QGraphicsItem

继承自QGraphicsObject

QGraphicsObject继承自QObjectQGraphicsItem

    QString path = QApplication::applicationDirPath() + "/circle.svg";
    qDebug() << "[" << __FILE__ << __LINE__ << "]" << path;
    QGraphicsSvgItem * item = new QGraphicsSvgItem(path);
    item->setFlag(QGraphicsItem::ItemIsMovable);
    QGraphicsScene scene;
    scene.addItem(item);

    QGraphicsView view;
    view.setScene(&scene);
    view.show();

2.使用QSvgWidget显示svg图像

    QString path = QApplication::applicationDirPath() + "/circle.svg";
    qDebug() << "[" << __FILE__ << __LINE__ << "]" << path;

    QSvgWidget w(path);
    w.resize(300,300);
    w.show();

3.使用QSvgRenderer加载svg文件

把svg文件存入到QPixmap中。

在QLabel上显示svg图片。

    QString path = QApplication::applicationDirPath() + "/circle.svg";
    qDebug() << "[" << __FILE__ << __LINE__ << "]" << path;

    QSvgRenderer render;
    render.load(path);

    QSize size = render.defaultSize();
    qDebug() << "[" << __FILE__ << __LINE__ << "]" << size;
    //(82,82):    40 + 40 + 2
    QPixmap pix(size * 5);
    qDebug() << "[" << __FILE__ << __LINE__ << "]" <<pix.size();
    //pix.fill(Qt::transparent);
    pix.fill(Qt::red);

    QPainter painter(&pix);
    painter.setRenderHint(QPainter::Antialiasing);
    render.render(&painter);

    QLabel label;
    label.setPixmap(pix);
    label.setAlignment(Qt::AlignTop);
    label.show();


http://www.kler.cn/a/282647.html

相关文章:

  • MFC中Picture Control控件显示照片的几种方式
  • A030-基于Spring boot的公司资产网站设计与实现
  • jvm调优方式
  • 缓存cache
  • react+hook+vite项目使用eletron打包成桌面应用+可以热更新
  • 数据结构小项目
  • Vue3-win7搭建vue3环境
  • FGF23:家族靶向治疗先行者
  • 【Rust光年纪】保护用户数据安全隐私:探秘Rust机密计算与安全库
  • Ubuntu24.04 安装向日葵远程访问工具
  • nginx部署前端vue项目
  • LaViT:Less-Attention Vision Transformer的特性与优点
  • 【Python机器学习】NLP分词——利用分词器构建词汇表(五)——将词汇表扩展到n-gram
  • Linux操作系统su命令详解,附代码
  • 牛客小白月赛99 F-自爆机器人
  • Java 集合Collection(List、Set)Map
  • 高级java每日一道面试题-2024年8月28日-基础篇-ArrayList的底层工作原理?
  • SELF-INSTRUCT: Aligning Language Modelswith Self-Generated Instructions 学习
  • vscode添加到环境变量之快捷使用
  • Typora + PicGo + Gitee 实现图片自动上传
  • Qt调用外部exe并嵌入到Qt界面中(验证成功的成功)
  • linux 创建文件节点
  • 深入理解微服务中的负载均衡算法与配置策略
  • Python实现Http Server及Https Server
  • Kafka的Offset(偏移量)详解
  • 爆改YOLOv8 | 利用CPA-Enhancer提高低照度物体检测(适用于雨,雪,雾天)