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

svg图片构造QGraphicsSvgItem对象耗时很长的问题解决

目录

1. 问题的提出

2. 问题解决


1. 问题的提出

      今天通过一张像素为141 * 214,大小为426KB的svg格式的图片构造QGraphicsSvgItem对象,再通过Qt的Graphics View Framework框架,将QGraphicsSvgItem对象显示到场景视图上,代码如下:

#include <QElapsedTimer>
#include <QGraphicsSvgItem>
......   // 其它头文件略......   // 其它代码略auto pBatteryChargeGraphicsScene = new QGraphicsScene(this);
ui->graphicsView->setScene(pBatteryChargeGraphicsScene);QElapsedTimer timer;
timer.start();auto pPeiDianGuiComponent = new QGraphicsSvgItem(QStringLiteral(":/uavGuarantee/image/batteryChargeShelters/peidiangui.svg"));qDebug() << "The slow operation took" << timer.elapsed() << "milliseconds";pPeiDianGuiComponent->setPos(100, 100);
pBatteryChargeGraphicsScene->addItem(pPeiDianGuiComponent);......   // 其它代码略
其中ui->graphicsView为QGraphicsView类对象,第13行竟然耗时6376毫秒,如下:

最要命的是程序一起来就需要加载QGraphicsSvgItem对象上百个,那就更慢了,十分影响用户体验。

2. 问题解决

用Adobe Photoshop打开svg图片,选择“文件->导出->导出为...”,如下:

在右侧“重新采样”下拉框中选择“两次线性”,然后单击右下角“导出”按钮,此时原来426KB的svg图片变为了10KB,然后改为加载此10KB的svg图片,效率提升很多,耗时如下:

http://www.lryc.cn/news/301824.html

相关文章:

  • 边坡位移监测设备:守护工程安全的前沿科技
  • Qt使用单例模式读取xml文件
  • 备战蓝桥杯 Day6(学习动态规划)
  • 【uniapp】自定义步骤条样式
  • UE5 C++ UObject实例化
  • Appium环境安装与架构介绍
  • Vue+Vite项目初建(axios+Unocss+iconify)
  • ASUS华硕枪神8笔记本电脑G614JIR,G814JVR,G634JYR,G834JZR工厂模式出厂Windows11系统 带重置还原功能
  • Python入门:常用模块—xml模块
  • 蓝队应急响应工具箱v2024.1​
  • Linux中获取字符串长度与获取子字符串
  • Rust语言之sha-256爆破
  • Rust中的字符串处理及相关方法详解
  • NS安装-CentOS服务器安装Nightscout CGM
  • 利用ChatGPT提升工作效率
  • django admin页面美化
  • Git 操作以及Git 常见问题
  • 如何学习和规划类似ChatGPT这种人工智能(AI)相关技术
  • 4 月 9 日至 4 月 10 日,Hack.Summit() 2024 首聚香江
  • [力扣 Hot100]Day29 删除链表的倒数第 N 个结点
  • 探索设计模式的魅力:掌握命令模式-解锁软件设计的‘遥控器’
  • LNMP搭建discuz论坛
  • 257.【华为OD机试真题】幼儿园篮球游戏(贪心算法-JavaPythonC++JS实现)
  • [计算机网络]深度学习传输层TCP协议
  • 动态头部:统一目标检测头部与注意力
  • 【状态估计】深度传感器与深度估计算法(1/3)
  • ClickHouse从入门到精通(高级)
  • 什么是Docker的容器编排工具,它们之间有何不同?
  • qml之Control类型布局讲解,padding属性和Inset属性细讲
  • 【Jvm】性能调优(拓展)Jprofiler如何监控和解决死锁、内存泄露问题