QT中的资源树

目录


资源树

QT中的资源树,实际分为两种完全不同的东西:
静态资源树: 也就是Qt 内置的 .qrc 资源系统
动态资源树: 运行时加载的界面树形控件,界面就类似于文件浏览器、资源管理器

我们在软件开发过程中,提到的资源树,大多数是第二种,需要我们实现这样一种对资源管理的功能。


静态资源树

什么是静态资源树?

静态资源树,也叫做QT资源系统,这是QT中内置的管理资源的方式。它可以将应用程序所需文件(如图片、字体、QML 文件、翻译文件、配置文件等)嵌入到可执行文件中。

简单来说,就是把你需要的的图片 / 文件 ,编译成二进制代码,然后嵌入 exe 程序内部 ,这样exe运行时直接从内存读取,不走硬盘

优点:

  • 编译进程序,发布时不需要附带资源文件
  • 无磁盘 IO,加载速度极快
  • 不需要线程(主线程直接用)

缺点:

  • 资源修改后必须重新编译
  • 不适合大文件(如视频、大型素材)

应该如何使用?

  1. 创建 qrc 资源文件

Qt Creator → 新建项目或文件 → 选择新建Qt Resource File → 命名(如resources.qrc)

  1. 添加文件

右键新建的.qrc文件 → Add Prefix(是添加前缀,一般直接将前缀设置为 /)→ 在新添加的前缀下面,添加自己的资源文件

  1. 在代码中访问资源

固定路径格式:qrc:前缀/文件名

举例说明

复制代码
Window{
    height: 400
    width:800
    visible: true

    Image {
        source: "qrc:/images/1.png"   //资源路径
        anchors.fill: parent
        fillMode: Image.PreserveAspectFit
    }

}

首先在QT中添加了test.qrc,由代码可以很明显看到 .qrc 文件的名称与资源访问路径没有直接关系。所以我们在使用的时候不需要考虑 .qrc 文件。然后我们的前缀是 / ,不是 /images 。为什么有 images?因为我是将图片放在同一个目录下,这样开发比较方便,毕竟实际开发过程中,肯定会有很多不同的资源。所以完整的路径组成就是:qrc:前缀(/)+文件路径(images/1.png)

相关推荐
西门吹-禅8 小时前
java springboot N+1问题
java·开发语言·spring boot
skywalk81638 小时前
设计并实现段言的 C FFI 绑定机制 @Trae
c语言·开发语言·python·编程
IT笔记10 小时前
【Rust】Rust Match 模式匹配详解
java·开发语言·rust
2zcode10 小时前
免费开源项目文档:基于MATLAB卷积神经网络的口罩佩戴检测系统
开发语言·matlab·cnn
逝水无殇10 小时前
C# 运算符重载详解
开发语言·后端·c#
TPBoreas11 小时前
配置信息防泄露方案:.env 环境隔离详解(dotenv-java)
java·开发语言
敲代码的嘎仔11 小时前
实习日志day6--实习日志day6--title命名规范化&businessType纠正&补充缺失的@Log注解&报警与通信模块补充&产出阶段总结文档
java·开发语言·人工智能·git·python·实习·大二
江华森11 小时前
Python 实现高德地图找房(一):环境搭建与数据爬虫
开发语言·爬虫·python
杜子不疼.11 小时前
【Qt初识】信号槽(三):机制意义、断开连接与 Lambda 表达式
开发语言·数据库·qt
老迟到的茉莉12 小时前
Hermes 是谁?跟 Claude Code 差在哪
开发语言·python