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

embedded/2025/3/19 9:08:13/

前言

在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.ppmy.cn/embedded/173814.html

相关文章

Java集合的底层原理

目录 Collection Arraylist HashSet 介绍 哈希值 哈希表的基本概念 HashSet 的内部实现 HashMap 哈希碰撞的处理 总结 TreeSet 特点 红黑树的特性 红黑规则 TreeSet 的内部实现 1. 存储结构 2. 添加元素&#xff08;重点&#xff09; 3. 查找元素 4. 删除元…

DexClassLoader 动态加载机制

DexClassLoader 动态加载机制 DexClassLoader 是 Android 提供的 动态加载 DEX&#xff08;Dalvik Executable&#xff09;文件 的工具&#xff0c;允许应用在 运行时 加载 .dex 或 .apk 文件中的类&#xff0c;而不需要在编译时静态引入。 1. DexClassLoader 介绍 DexClassL…

使用PyMongo操作MongoDB(一)

使用PyMongo操作MongoDB MongoDB作为一款流行的NoSQL数据库&#xff0c;以其灵活的数据模型和强大的查询能力受到开发者青睐。通过PyMongo库&#xff0c;我们可以在Python中轻松实现与MongoDB的交互。本文将系统介绍PyMongo的安装、连接及数据库操作全流程。 一、环境准备 安…

Redis客户端Jedis、Lettuce 和 Redisson优缺点总结

https://developer.huawei.com/consumer/cn/blog/topic/03825550899620047 Redis 官方推荐的 Java 客户端有Jedis、Lettuce 和 Redisson。本文总结这些客服端的优缺点 1. Jedis Jedis 是老牌的 Redis 的 Java 实现客户端&#xff0c;提供了比较全面的 Redis 命令的支持&#…

总结 kotlin中的关键字和常用方法

Kotlin 的关键字分为 硬关键字&#xff08;Hard Keywords&#xff09;、软关键字&#xff08;Soft Keywords&#xff09; 和 修饰符关键字&#xff08;Modifier Keywords&#xff09;。以下是分类整理的关键字列表及其核心用途&#xff1a; 1. 硬关键字&#xff08;Hard Keywor…

【数据库】如何用索引优化查询性能

引言 在数据库查询中&#xff0c;索引是提升性能的关键工具。合理使用索引可以显著减少数据扫描量&#xff0c;加快查询速度。然而&#xff0c;索引的使用也需要谨慎&#xff0c;错误的索引策略可能导致性能下降甚至系统崩溃。本文将深入探讨如何通过索引优化查询性能&#xf…

函数(函数的概念、库函数、自定义函数、形参和实参、return语句、数组做函数参数、嵌套调用和链式访问、函数的声明和定义、static和extern)

一、函数的概念 •C语⾔中的函数&#xff1a;⼀个完成某项特定的任务的⼀⼩段代码 •函数又被翻译为子函数&#xff08;更准确&#xff09; •在C语⾔中我们⼀般会⻅到两类函数&#xff1a;库函数 ⾃定义函数 二、库函数 1 .标准库和头文件 •C语⾔的国际标准ANSIC规定了⼀…

硬件设计抽象级别详解:门级、RTL级、行为级与HLS

硬件设计抽象级别详解&#xff1a;门级、RTL级、行为级与HLS 引言 在数字系统设计领域&#xff0c;硬件描述语言(HDL)提供了多种抽象级别来描述电路功能和结构。从最底层的门级描述到高层的行为级描述&#xff0c;每一种抽象级别都有其特定的用途和优势。理解这些不同级别以及…