引言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家点击跳转到网站

在上一篇文章中,我们深入探讨了QWidget作为Qt GUI框架中核心基类的重要性,以及它如何承载了构建丰富用户界面所需的各种属性和功能。然而,在开发一个完整的Qt应用程序时,除了精心设计和实现界面控件外,如何高效地管理和访问项目中的静态资源(如图片、图标、样式表等)同样至关重要。这些资源不仅是应用程序外观的重要组成部分,也是提升用户体验的关键因素。

为了简化这一流程,Qt提供了一种强大的机制——qrc(Qt Resource Collection)文件,它允许开发者以一种声明式的方式将静态资源集成到应用程序中。这一机制不仅简化了资源的管理和部署,还使得资源的访问更加灵活和可靠。

一、qrc机制简介

qrc文件是Qt开发中一个重要的资源配置文件,它采用XML格式来定义项目中使用的静态资源。这个文件的作用是将硬盘上的文件(如图片、图标、样式表等)与开发者指定的资源名称进行关联。通过这种方式,应用程序可以通过这些资源名称来访问和使用这些资源,而无需直接依赖于它们在硬盘上的物理路径。

在Qt项目中,将qrc文件添加到项目中可以极大地简化资源的访问和管理过程。qrc文件中指定的资源文件可以位于与qrc文件同级的目录或其子目录下,这为资源的组织提供了很大的灵活性。

在项目的构建过程中,Qt工具链会处理qrc文件,将这些资源文件的二进制数据转换成C++代码,并编译到最终的可执行文件(如exe文件)中。这一机制确保了应用程序在运行时能够直接访问到这些资源,而无需担心资源的物理路径问题,从而使得资源的访问变得“路径无关”。

二、创建qrc机制并使用

1. 创建⼀个qrc文件

    1. 在项目中点击文件 - > 新建文件 - > Qt - > Qt Resource File - > Choose
      在这里插入图片描述
    1. 给文件起一个名字(注意:路径中不能含有中文!!!)
      在这里插入图片描述
    1. 添加到项目中,默认为当前项目
      在这里插入图片描述
    1. 创建完成
      在这里插入图片描述

2. 添加已有资源

    1. 新建虚拟路径
      在这里插入图片描述
    1. 资源编辑器中,点击 add Files 添加资源文件,弹窗选出要加入的资源(PS:添加的文件必须是在qrc文件的同级目录,或者同级目录的子目录中。因此我们需要把之前准备好的资源复制到上述目录中
      在这里插入图片描述
    1. 资源加载完成,添加完毕后可以在资源编辑器中看到添加好的文件
      在这里插入图片描述

3. 使用已加载资源

我们用刚才加载进来的图片设置为窗口图标来作为示例。

在这里插入图片描述

  • 使用:开头来指示Qt从qrc资源文件中读取资源。
  • 紧接着:的是.qrc文件中定义的前缀(如果有的话),例如:/images
  • 最后是资源文件的名称,包括其扩展名,如test.png

三、qrc机制的优缺点

优点
qrc机制确保了图片、字体、声音等关键资源能够完全独立于应用程序的目录结构,从而实现了真正的“目录无关性”。无论应用程序被部署到哪个位置或目录,这些资源都能被准确无误地引用,避免了因路径问题导致的资源丢失风险。

缺点
qrc机制并不适合管理体积庞大的资源。如果应用程序中包含的资源文件较大(例如,几个MB的文件),或者资源数量众多,那么将这些资源嵌入到可执行文件中将会显著增加最终exe文件的体积。这不仅可能导致程序在运行时消耗更多的内存资源,还可能显著延长程序的编译时间,对开发效率造成一定影响。因此,在处理大型资源时,需要权衡嵌入资源的便利性和可能带来的性能影响。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐