QML的Image 路径问题(source)

四种路径格式

在 QML 中,当你使用 Image 元素的 source 属性来指定一个图片的路径时,有几种不同的方式可以指定这个路径,每种方式都有其特定的用途和上下文

  1. 相对路径: QML 文件和一个名为 close.png 的图片在同一目录下,直接使用 source: “close.png”。QML 会相对于 QML 文件的路径来查找这个图片。

  2. 绝对路径:知道图片的确切位置,你可以使用绝对路径。但是,这通常不推荐,因为这会使 QML 文件更难以移植和重用。

  3. 资源路径 :使用 Qt 的资源系统(.qrc 文件),可以将图片添加到资源文件中,并在 QML 中通过资源路径引用它。这通常看起来像这样:source: “qrc:/images/close.png”,其中 images 是 .qrc 文件中定义的资源前缀,close.png 是图片文件名。

  4. URL 格式:QML 也支持使用 URL 格式来指定路径。这通常需要引用网络上的图片或使用特定协议(如 file://)时很有用。

常见做法

  • 图片与 QML 文件在同一目录下,只需使用 source: “close.png”。
  • 图片在 QML 文件的子目录中,使用相对路径,如 source: “images/close.png”(假设图片在名为 images 的子目录中)。
  • 使用 Qt 的资源系统,并将图片添加到 .qrc 文件中。这样, QML 文件将更易于移植和重用,因为图片将嵌入到应用程序的可执行文件中。

下面按照项目类型做简单展示

开源项目

对于开源项目来说,一般使用资源路径。这种方法的本质是使用QtDeclarative模块动态载入,优势是便于修改。
以一个控件为例:

Image {id: closeIconwidth:25height:25anchors.right: parent.rightanchors.top: parent.topsource: "icon/close.png"// 添加一个MouseArea来处理点击事件MouseArea {id: closeAreaanchors.fill: parentonClicked: {login.close()}}}

此时资源路径通过右键可以轻易获取到
在这里插入图片描述

商业项目(混淆源码)

一般会使用资源路径,本质是将QML文件加入到Qt资源系统中,编译成二进制文件供QtDeclarative模块使用。我查阅的资料显示使用相对路径、绝对路径也可以,但是在Windows或者Linux操作系统中,我经常会遇到这样的报错:
在这里插入图片描述
在已经保证编码格式正确的条件下,这种路径是读不到的,深入分析错误原因,发现问题出在资源解析上,因此还是推荐使用资源路径:

"file://icon/close.png"

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

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

相关文章

Spring:面向切面(AOP)

1. 代理模式 二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类**间接**调用。让不属于目标方法核心逻辑的代码从目标方法中剥…

【热门话题】Debian常用命令指南

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Debian常用命令指南引言1. 文件与目录操作lscdmkdirrmcpmv 2. 包管理aptdpkg 3.…

minaActivatorA12+物主锁完美解信号,可登iCloud,有消息通知,支持iOS17.5.1+

原创 IOS福利部落 IOS福利部落 2024-05-26 19:35 福建 Mina Activator A12是一款绕过物主锁界面的解锁工具,可以激活所有iPhone恢复信号,并且支持插卡接打电话、收发短信、4G流量上网,支持iCloud登录,有消息通知,支持i…

sklearn实现线性回归

sklearn实现线性回归 一、数据集介绍二、使用sklearn实现线性回归一、数据集介绍 本案例使用女性身高体重数据集,数据集如下图所示: 可以看到,数据集有15行2列。 二、使用sklearn实现线性回归 sklearn中的线性模型模块是linear_model。这里使用linear_model下的普通线性…

【Linux】-Redis安装部署[15]

目录 简介 安装 1、配置EPEL仓库 2、安装redis 3、启动redis 4、放行防火墙,redis使用端口6379 5、进入redis服务 简介 redis是一个开源、使用C语言编写的、支持网络互交的、可基于内存也可持久化的Key-Value数据库。redis的特点就是:快&#xf…

安全设计 | CISA:构建默认安全的软件,软件安全设计的未来之路

软件制造商在产品设计和开发过程中应采取安全设计原则和方法,以减少网络安全风险,并转变责任重心,使产品在设计时就内置安全特性,而不是依赖于后期的补丁和修复。为此CISA发布了《软件安全设计的原则和方法》,帮助软件…

python如何把字符串变成小写字母

Python中,将字符串中的字母转换成小写字母,字符串变量提供了2种方法,分别是title()、lower()。 Python title()方法 title()方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后&#xff0…

如何在go语言中调用c语言代码

1.安装c语言编译器 要使用cgo,需要安装c语言编译器 gcc 2.检查CGO_ENABLED时候开启 使用以下命令查看: go env CGO_ENABLED 如果go env CGO_ENABLED被禁用(为0),需要将其设置为开启(为1) 3.编写c语言程序,并用go语言调用c语言程序 1&#xff…

AIGC 005-Dreambooth定制化生成,微调文本到图像的扩散模型!

AIGC 005-Dreambooth定制化生成,微调文本到图像的扩散模型! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 DreamBooth 论文 (DreamBooth: Fine-Tuning Text-to-Image Diffusion Models for Subject-Driven Generation) 提出了一种新颖的技术&#x…

【开源】大学生竞赛管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、系统介绍 学生管理模块 教师管理模块 竞赛信息模块 竞赛报名模块 二、系统截图 三、核心代码 一、系统介绍 基于Vue.js和SpringBoot的大学生竞赛管理系统,分为管理后台和用户网页端,可以给管理员、学生和教师角色使用,包括学…

mysql实战——xtrabackup全量备份/增量备份及恢复

一、测试前准备 mysql数据库 端口3306数据文件目录 /data/mysql/3306/data 安装目录/usr/lcoal/mysql配置文件/etc/my.cnf 创建数据库 testXtra 创建备份目录 备份目录/data/backup/备份恢复数据文件目录/data/mysql/3307/data备份恢复配置文件/etc/my_3307.cnf 二、开始…

linux查看是否被入侵(一)

1、查看当前系统状态 [rootbastion-IDC ~]#top #一般挖矿等病毒点用CPU比较大 2、查看当前登录用户(w\who) 3、检查系统日志 检查系统错误登陆日志,统计IP重试次数 [rootbastion-IDC ~]# lastb 4、查看近期用户登录情况 [rootkvm01 ~]# last -n 5 #-n 5 表示…

将list对象里的某一个属性取出组成一个新的list

使用Java8将对象里的某一个属性取出组成一个新的list List<Spgg1> listnew ArrayList<>();Spgg1 spgg1new Spgg1();spgg1.setSpdm("测试");spgg1.setGgdm("001");list.add(spgg1);Spgg1 spgg2new Spgg1();spgg2.setSpdm("测试2");sp…

Mysql 找出未提交事务的SQL及死锁

未提交事务&#xff1a; 通过查看information_schema.INNODB_TRX视图,您可以了解当前系统中正在运行的事务情况,从而进行问题排查和性能优化。 SELECT * FROM information_schema.innodb_trx; 通过trx_state为RUNNIG,trx_started判断是否有一直RUNNING的事务。 如果有未提交…

千帆【API接入】自定义组件简明教程

千帆【API接入】自定义组件简明教程 大家好&#xff0c;我是 JavaRoom&#xff0c;今天来给大家做一个自定义API接入来是心啊遣返组件创建案例简明教学。 1.准备工作 1.1 一个不欠费的千帆账号 财务总览地址&#xff1a;https://console.bce.baidu.com/billing/#/account/i…

“现代汽车中国前瞻软件赛杯” 牛客周赛 Round 43

A. 小红平分糖果&#xff08;签到&#xff09; // Problem: 小红平分糖果 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/82394/A // Memory Limit: 524288 MB // Time Limit: 2000 ms // // Powered by CP Editor (https://cpeditor.org)#include<b…

以前:不会用电脑;现在:不会用AI

购买特价商务机票需要一些策略和灵活性。、 提前规划&#xff1a;商务舱票价通常在出发日期的2-3个月前最便宜。尽早规划您的行程并开始关注票价。 使用比价工具&#xff1a;使用Skyscanner、Kayak等比价网站来比较不同航空公司的商务舱票价。这些网站可以显示多个航空公司的价…

Jeecg | 如何解决 ERR Client sent AUTH, but no password is set 问题

最近在尝试Jeecg低代码开发&#xff0c;但是碰到了超级多的问题&#xff0c;不过总归是成功运行起来了。 下面说说碰到的最后一个配置问题&#xff1a;连接redis失败 Error starting ApplicationContext. To display the conditions report re-run your application with deb…