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

news2025/3/12 18:30:55

目录

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.coloradmin.cn/o/1455591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用GPT-4开启“人类宝藏”

“GPT-4开启人类宝藏”意味着下面几个层面的含义&#xff1a; 知识与信息的访问&#xff1a;GPT-4作为一款强大的语言模型&#xff0c;通过学习海量的数据和信息资源&#xff0c;可以近乎实时地提供人类历史积累的知识、经验与智慧。用户可以通过询问或交互方式获取这些信息&am…

数据结构——单链表专题

目录 1. 链表的概念及结构2. 实现单链表初始化尾插头插尾删头删查找在指定位置之前插入数据在指定位置之后插入数据删除指定位之前的节点删除指定位置之后pos节点销毁链表 3. 完整代码test.cSList.h 4. 链表的分类 1. 链表的概念及结构 在顺序表中存在一定的问题&#xff1a; …

推荐彩虹知识付费商城免授权7.0源码

彩虹知识付费商城免授权7.0源码&#xff0c;最低配置环境 PHP7.2 1、上传源码到网站根目录&#xff0c;导入数据库文件&#xff1a;xydai.sql 2、修改数据库配置文件&#xff1a;/config.php 3、后台&#xff1a;/admin 账号&#xff1a;admin 密码&#xff1a;123456 4、前…

见智未来:数据可视化引领智慧城市之潮

在数字时代的浪潮中&#xff0c;数据可视化崭露头角&#xff0c;为打造智慧城市注入了强大的活力。不再被深奥的数据所束缚&#xff0c;我们通过数据可视化这一工具&#xff0c;可以更加接近智慧城市的未来。下面我就以可视化从业者的角度来简单聊聊这个话题。 数据可视化首先为…

【动态规划:最短编辑路径】的应用:excel diff功能

开篇说明 如果在这里获得过启发和思考&#xff0c;希望点赞支持&#xff01;对于内容有不同的看法欢迎来信交流。 技术栈 >> java 邮箱 >> 15673219519163.com 描述 在游戏行业中通常使用excel做配表&#xff0c;修改配表是一个频繁的操作。在修改之后&#xff…

Python next函数

在Python编程中&#xff0c;next()函数是一个非常重要且常用的内置函数&#xff0c;用于迭代器对象中获取下一个元素。迭代器是一种可以逐个访问数据元素的对象&#xff0c;例如列表、元组、字典等。本文将深入探讨Python中的next()函数&#xff0c;包括基本用法、迭代器协议、…

STM32中断定时器的使用

使用systimer来产生较为精确的定时&#xff0c;之前使用for循环来产生。 用示例工程时产生错误&#xff0c;原因是调用F103的3种容量器件&#xff0c;需要更换S汇编头函数。 另外在工程设置中&#xff0c;需要把HD设置为MD&#xff0c;重新编译即可成功。

UVa1359/LA3491 Hills

题目链接 本题是2005年ICPC亚洲区域赛杭州欧赛区的H题 题意 平面上有 n&#xff08;n≤500&#xff09;条线段&#xff0c;其中每条线段的端点都不会在其他线段上。你的任务是数一数有多少个“没有被其他线段切到”的三角形&#xff08;即小山&#xff09;。如下图所示&#x…

NS安装-CentOS服务器安装Nightscout CGM

NS CGM 安装必要条件 有自己的云服务器好像没有2&#xff0c;有云服务器就行了 安装顺序 先安装数据库&#xff0c;目前支持的是 MongoDB &#xff0c;官方推荐4&#xff0c;其实目前最新版本就行。可以用宝塔安装&#xff0c;比较简单克隆代码&#xff0c;我是放到 /opt/ns…

使用可靠的情报在危机中做出明智的决策

近年来&#xff0c;随着地缘政治威胁的增加&#xff0c;组织逐渐发现错误信息对危机时期做出关键决策的重大影响。国际 SOS 发现各种规模的企业都在努力分析危机期间 24/7 可用的大量信息&#xff0c;并使用可信来源及时提供决策信息&#xff0c;特别是为了员工的健康和安全&am…

PAM | 账户安全 | 管理

PAM PAM&#xff08;Pluggable Authentication Modules&#xff0c;可插入式身份验证模块&#xff09;是一个灵活的身份验证系统&#xff0c;允许我们通过配置和组合各种模块来实现不同的身份验证策略。 在 Linux 或类 Unix 系统中&#xff0c;常见的 PAM 模块包括以下几种类…

[深度学习] 深入理解什么是卷积神经网络

​ &#x1f308; 博客个人主页&#xff1a;Chris在Coding &#x1f3a5; 本文所属专栏&#xff1a;[深度学习] ❤️ 热门学习专栏&#xff1a;[Linux学习] ⏰ 我们仍在旅途 目录 1.卷积的定义 2.卷积的"卷"在哪里 3.什么又是卷积神…

PyCharm 自动添加文件头注释

PyCharm 自动添加文件头注释 1. File and Code Templates2. Python FileReferences 1. File and Code Templates File -> Settings -> Editor -> File and Code Templates -> Python Script Reformat according to style & Enable Live Templates Created by…

悦耳的现代简约风,还可定义个性听感,森海塞尔ACCENTUM无线耳机体验

在头戴式耳机领域&#xff0c;森海塞尔本身的硬件实力确实足够出色 &#xff0c; 到了蓝牙时代 &#xff0c; 也推出了一些很有质感的产品 &#xff0c; 最近我尝试了较新的一款 ACCENTUM 耳机 &#xff0c; 它属于森海塞尔一个全新的系列 &#xff0c; 耳机本身的侧重点也很明…

PyCharm 新建目录 (directory or folder)

PyCharm 新建目录 [directory or folder] 1. 新建目录2. Enter new directory name -> OKReferences 1. 新建目录 right mouse click on the project -> New -> Directory 2. Enter new directory name -> OK ​​​ References [1] Yongqiang Cheng, https:/…

图论之dfs与bfs的练习

dfs--深度优选搜索 bfs--广度优先搜索 迷宫问题--dfs 问题&#xff1a; 给定一个n*m的二维迷宫数组其中S是起点&#xff0c;T是终点&#xff0c;*是墙壁&#xff08;无法通过&#xff09;&#xff0c; .是道路 问从起点S出发沿着上下左右四个方向走&#xff0c;能否走到T点&a…

python如何模拟登录Github

首先进入github登录页&#xff1a;https://github.com/login 输入账号密码&#xff0c;打开开发者工具&#xff0c;在Network页勾选上Preserve Log&#xff08;显示持续日志&#xff09;&#xff0c;点击登录&#xff0c;查看Session请求&#xff0c;找到其请求的URL与Form Da…

Linux——网络通信TCP通信常用的接口和tcp服务demo

文章目录 TCP通信所需要的套接字socket()bind()listen()acceptconnect() 封装TCP socket TCP通信所需要的套接字 socket() socket()函数主要作用是返回一个描述符&#xff0c;他的作用就是打开一个网络通讯端口&#xff0c;返回的这个描述符其实就可以理解为一个文件描述符&a…

GPT升级信息:能记住用户的喜好和习惯!

OpenAI刚刚宣布了ChatGPT的一项激动人心的更新&#xff01; OpenAI在ChatGPT中新加了记忆功能和用户控制选项&#xff0c;这意味着GPT能够在与用户的互动中记住之前的对话内容&#xff0c;并利用这些信息在后续的交谈中提供更加相关和定制化的回答。 这一功能目前正处于测试阶段…

SpringMVC回顾总结笔记

MVC是一种思想而SpringMVC是具体的实现&#xff08;Ioc和DI的关系&#xff09; 在创建项目的时候勾选的SpringWeb框架就是SpringMVC框架 与浏览器建立连接 默认返回的是一个 view 视图。需要添加ResponseBody说明返回的是json数据。RestController是ControllerResponseBody…