qml按路径读取图片_QML Image获取资源路径的细节

本文探讨了QML中Image组件在读取资源路径时遇到的问题及其解决方案。在不同环境下,Image组件对路径处理的方式有所不同,特别是在混淆QML源码时。文章指出,当QML文件在资源系统中,需要使用file:///前缀来指定本地文件路径,而网络资源路径会自动处理。总结了QML Image路径使用的三个关键点:未使用资源系统时路径直接使用;使用资源系统时本地路径需file://前缀;网络路径会自动处理qrc:标识。
摘要由CSDN通过智能技术生成

QML是门相当新的UI描述语言,因此在文档上总难免有疏漏之处,如果因此产生了bug,则就需要花费大量的时间去排查。

在最近笔者使用QML的过程中,在Image获取资源路径的细节上就出现了这样的情况。

Image 是qml中一个非常普通的元素,通常使用方法如下:

Image {

width: 120; height: 120

fillMode: Image.TileHorizontally

smooth: true

source: "qtlogo.png"

}

其中,source指的Image元素获取资源的url路径,这个url可以是本地的绝对路径或者相对路径,也可以是qt资源系统的路径,甚至是网络资源的路径。

正是这个看起来不起眼的路径,却会带来跟预期想之外的结果,并且,仅仅从代码上来看,没有半点错误的地方。

要了解这种情况的出现,应该要知道qml的两种使用方式:

1.暴露QML源码的使用方法,即不对QML文件进行处理,存放在可执行文件的目录下,使用QtDeclarative模块动态载入,一般适合以开源程序;

2.混淆QML源码的使用方法,即将QML文件加入到qt资源系统,编译成二进制文件供QtDeclarative模块使用,这样的好处,是可以隐藏代码,供商业项目使用。

在前种的使用方式中,Image元素对于读取资源路径正确无误,在Mac.OS.X,Ubuntu和windows平台上表示一致,但是后者,却出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值