Qt QML解决SVG图片显示模糊的问题

news2025/3/18 6:18:39

前言

在QML中直接使用SVG图片,使用Image控件加载资源,显示出来图片是模糊的,很影响使用体验。本文介绍重新绘制SVG图片,然后注册到QML中使用。

效果图:
在这里插入图片描述
左边是直接使用Image加载资源显示的效果
右边是重绘后的效果

正文

为了能在QML中注册使用,将继承于QQuickPaintedItem进行重绘。
关键代码

#include "svgimage.h"
#include <QPointF>

SvgImage::SvgImage(QQuickItem *parent) : QQuickPaintedItem(parent)
{
    m_pSvgRenderer = new QSvgRenderer(this);
}

void SvgImage::declareQML()
{
    qmlRegisterType<SvgImage>("SvgImage", 1, 0, "SvgImage");
}

void SvgImage::writeSource(QString sourcePath) {
    if(sourcePath.isEmpty()){
        return;
    }
    m_source = sourcePath;
    m_source.replace("qrc", "");
    m_pSvgRenderer->load(m_source);
    emit sourceChanged();
    update();
}

void SvgImage::paint(QPainter *painter)
{
    QRectF rect = QRectF(QPointF(0,0), QSizeF(width(), height()));
    m_pSvgRenderer->render(painter, rect);
}

本文demo提供了在QML中使用的完整流程.

Demo 下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2317050.html

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

相关文章

【Linux我做主】基础命令完全指南上篇

Linux基础命令完全指南【上篇】 Linux基础命令完全指南github地址前言命令行操作的引入Linux文件系统树形结构的根文件系统绝对路径和相对路径适用场景Linux目录下的隐藏文件 基本指令目录和文件相关1. ls2. cd和pwdcdpwd 3. touch4. mkdir5. cp6. mv移动目录时覆盖写入的两种特…

Designing Dashboards with SAP Analytics Cloud

Designing Dashboards with SAP Analytics Cloud

项目实战系列:基于瑞萨RA6M5构建多节点OTA升级-系统设计<一>

项目背景 原嵌入式控制系统采用分布式模块化架构&#xff0c;由12个功能板卡&#xff08;通信控制、信号采集、驱动执行等&#xff09;组成。系统维护阶段存在以下痛点&#xff1a; 低效的本地烧录机制&#xff1a;各板卡固件升级需通过JTAG接口逐一手动连接JLINK仿真器&#x…

《AI大模型趣味实战》 No3:快速搭建一个漂亮的AI家庭网站-相册/时间线/日历/多用户/个性化配色/博客/聊天室/AI管家(下)

《AI大模型趣味实战》 No3&#xff1a;快速搭建一个漂亮的AI家庭网站-相册/时间线/日历/多用户/个性化配色/博客/聊天室/AI管家(下) 摘要 本文介绍了家庭网站V1.3版本的更新内容&#xff0c;主要聚焦于AI管家功能的优化与完善。V1.3版本对AI管家模块进行了全面升级&#xff0…

c++基础知识-图论进阶

一、拓扑排序 1、基础知识 1&#xff09;什么是拓扑排序 对一个有向无环图G进行拓扑排序&#xff0c;是将G中所有顶点排成一个线性序列&#xff0c;使得图中任意一对顶点u和v&#xff0c;若&#xff0c;则u在线性序列中出现在v之前。 2&#xff09;拓扑排序的操作方法 重复执行…

[Java实战]Spring Boot服务CPU 100%问题排查:从定位到解决

Spring Boot服务CPU 100%问题排查&#xff1a;从定位到解决 1. 引言 当Spring Boot服务出现CPU占用率100%时&#xff0c;系统性能会急剧下降&#xff0c;甚至导致服务不可用。本文将通过真实代码案例&#xff0c;详细讲解如何快速定位问题根源&#xff0c;并提供解决方案。无…

1.6 极限存在准则

1.夹逼定理&#xff08;迫敛定理&#xff09; 1.1 数列型 1.1.1 准则 1.2 函数型 2. 两个重要极限

大华SDK协议在智联视频超融合平台中的接入方法

一. 大华SDK协议详解 &#xff08;一&#xff09;、大华SDK协议概述 大华SDK&#xff08;Software Development Kit&#xff09;协议是大华股份为开发者提供的一套软件开发工具包&#xff0c;旨在帮助开发者快速集成大华设备&#xff08;如摄像头、NVR、DVR等&#xff09;的功…

卓越的用户体验需要智能内容

摘要&#xff1a;这篇文章指出静态文档已无法满足现代用户的需求&#xff0c;而智能内容则是构建卓越用户体验的关键。文章从智能内容的定义、优势和实际应用等方面进行了详细阐述&#xff0c;并强调了企业应积极拥抱智能内容&#xff0c;以提升客户满意度、降低成本并创造新的…

【蓝桥杯】1124修建公路1(Kruskal算法)

思路 找到能够连通所有城市的最小树即可&#xff0c;可用Prim或Kruscal。 &#xff01;&#xff01;注意&#xff0c;m的范围是包括0的&#xff0c;可就是包含没有道路的情况&#xff0c;要单独输出0 code import os import sys# 输入 n,m map(int,input().split()) road …

传感云揭秘:边缘计算的革新力量

在当今快速发展的科技时代&#xff0c;传感云和边缘计算系统正逐渐成为人们关注的焦点。传感云作为物联网与云计算的结合体&#xff0c;通过虚拟化技术将物理节点转化为多个服务节点&#xff0c;为用户提供高效、便捷的服务。而边缘计算则是一种靠近数据源头或物端的网络边缘侧…

Bigemap Pro 的三种地图下载方式

地图下载通常是是最基础但也最重要的任务之一&#xff0c;无论是进行空间分析、制作专题地图&#xff0c;还是进行数据可视化&#xff0c;高质量的地图数据都是不可或缺的。Bigemap Pro提供了三种地图下载方式&#xff0c;分别适用于不同的场景和需求。无论是免费版用户还是专业…

Python直方图:从核密度估计到高维空间解析

一、直方图的核心原理与数学本质 数据分布的视觉解码器 直方图&#xff08;Histogram&#xff09;是数据科学家的"分布显微镜"&#xff0c;通过将连续数据划分为等宽区间&#xff08;Bin&#xff09;&#xff0c;统计各区间的频数/频率&#xff0c;用相邻矩形条直观…

0基础 | 恒流源专题

目录 tip1&#xff1a;低端反馈​编辑 tip2: 恒流源电路的设计注意事项 tip3&#xff1a;三极管输出恒定电流受运放输出电流控制 tip4&#xff1a;高端反馈 基本逻辑&#xff1a; 当负端Vref不输入电压时&#xff0c; 当负端Vref输入电压时 tip1&#xff1a;低端反馈 判…

Webpack 前端性能优化全攻略

文章目录 1. 性能优化全景图1.1 优化维度概览1.2 优化效果指标 2. 构建速度优化2.1 缓存策略2.2 并行处理2.3 减少构建范围 3. 输出质量优化3.1 代码分割3.2 Tree Shaking3.3 压缩优化 4. 运行时性能优化4.1 懒加载4.2 预加载4.3 资源优化 5. 高级优化策略5.1 持久化缓存5.2 模…

【YOLOv8】YOLOv8改进系列(7)----替换主干网络之LSKNet

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO &#x1f341;YOLOv8入门改进专栏&#x1f341; &#x1f341;如果再也不能见到你&#xff0c;祝你早安&#xff0c;午安&#xff0c;晚安&#x1f341; 【YOLOv8改进系列】&#xff1a; 【YOLOv8】YOLOv8结构解读…

【LangChain】理论及应用实战(7):LCEL

文章目录 一、LCEL简介二、LCEL示例2.1 一个简单的示例2.2 RAG Search 三、LCEL下核心组件&#xff08;PromptLLM&#xff09;的实现3.1 单链结构3.2 使用Runnables来连接多链结构3.2.1 连接多链3.2.2 多链执行与结果合并3.2.3 查询SQL 3.3 自定义输出解析器 四、LCEL添加Memor…

ai本地化 部署常用Ollama软件

现在用最简单的方式介绍一下 Ollama 的作用和用法&#xff1a; Ollama 是什么&#xff1f; Ollama 是一个让你能在自己电脑上免费运行大型语言模型&#xff08;比如 Llama 3、Mistral 等&#xff09;的工具。 相当于你本地电脑上有一个类似 ChatGPT 的 AI&#xff0c;但完全…

vllm部署QwQ32B(Q4_K_M)

vllm部署QwQ32B(Q4_K_M) Ollama是一个轻量级的开源LLM推理框架&#xff0c;注重简单易用和本地部署&#xff0c;而VLLM是一个专注于高效推理的开源大型语言模型推理引擎&#xff0c;适合开发者在实际应用中集成和使用。两者的主要区别在于Ollama更注重为用户提供多种模型选择和…