当前位置: 首页 > news >正文

Qt 学习(四) —— qrc资源文件介绍与使用

Qt工程分组中,除了HeadersSourcesForms外,还有一个文件夹Resources,只有当工程中有图片、音频等资源文件时才会用到。

首先将资源文件存放到工程目录下的文件夹中,然后添加.qrc文件,方法如下:

在工程目录右键–>选择Add New

在这里插入图片描述

选择Qt–>Qt Resource File,然后点击Choose…

在这里插入图片描述

然后可以自定义文件名和路径,点击Next>

在这里插入图片描述

然后可以选择要添加到的工程和使用的版本控制工具,这里默认,然后点击Finish

在这里插入图片描述

然后,工程目录中就会出现Resources目录和res.qrc文件,点击Add Prefix添加前缀

在这里插入图片描述

Qt通过前缀对资源文件分类,如有需要用户可以自定义前缀名称,如不需要分类可以修改前缀为/,然后点击Add Files添加资源文件

在这里插入图片描述

找到工程目录下的资源文件位置,全选导入,再构建一下(点右下角那个小锤子),就可以在Resources目录下看到这些文件了,如下图:

在这里插入图片描述

其中.qrc文件存储的是资源文件的相对路径,.qrc文件格式如下:

<RCC>
    <qresource prefix="/">
        <file>res/742c.png</file>
        <file>res/20220918143827.png</file>
        <file>res/Einstein.png</file>
        <file>res/icon.png</file>
    </qresource>
</RCC>

使用资源文件时输入的路径格式为“:/res/icon.png”,其中:后面是前缀+文件相对路径,比如为按钮添加背景图片:

toolBtn->setIcon(QIcon(":/res/icon.png"));

如果需要对资源文件进行分类,上面点击Add Prefix添加前缀那一步,可以填写自定义的前缀名称,点击一次Add Prefix添加一个前缀(分类),然后把对应的文件添加进去,再构建一下就可以了。

在这里插入图片描述

其中.qrc文件内容如下:

<RCC>
    <qresource prefix="/first">
        <file>res/742c.png</file>
        <file>res/20220918143827.png</file>
    </qresource>
    <qresource prefix="/second">
        <file>res/Einstein.png</file>
        <file>res/icon.png</file>
    </qresource>
</RCC>

这时icon.png文件的路径就变为:/second/res/icon.png了。

小建议

获取文件路径,建议在Resources目录下对应的资源文件上右键,选择Copy Path复制:

在这里插入图片描述

相关文章:

  • 【云原生之Docker实战】使用Docker部署Alist网盘直链程序
  • 数据结构与算法——左程云05
  • STM32——2.4G无线通信实验
  • 【C语言数据结构】03.双链表
  • 非零基础自学Java (老师:韩顺平) 第23章 反射(reflection) 23.2 反射机制
  • (一)Java算法:二分查找
  • [前缀和]Tokitsukaze and Strange Inequality Codeforces1678C
  • Stl中map、set 容器(数据结构:AVL树、红黑树)--C++
  • Chapter20: Machine Learning for In Silico ADMET Prediction
  • Ubuntu下安装Miniconda
  • No1.搭建基本的密码模式请求token(授权服务端)
  • 代码随想录二叉树——从中序与后序遍历序列构造二叉树
  • 【2023泰凌微笔试题】~ 题目及参考答案
  • 采用Python中Tkinter模块的Treeview 组件显示xml文件
  • synchronized的实现原理与应用
  • [NodeJS] 关于Buffer
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Android单元测试 - 几个重要问题
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Create React App 使用
  • GitUp, 你不可错过的秀外慧中的git工具
  • JavaScript设计模式与开发实践系列之策略模式
  • Java到底能干嘛?
  • Logstash 参考指南(目录)
  • php的插入排序,通过双层for循环
  • socket.io+express实现聊天室的思考(三)
  • 动态规划入门(以爬楼梯为例)
  • 关于 Cirru Editor 存储格式
  • 回顾2016
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 码农张的Bug人生 - 初来乍到
  • 前端之Sass/Scss实战笔记
  • 入门级的git使用指北
  • 山寨一个 Promise
  • 我看到的前端
  • 线性表及其算法(java实现)
  • 携程小程序初体验
  • #ubuntu# #git# repository git config --global --add safe.directory
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (C++)八皇后问题
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (接口自动化)Python3操作MySQL数据库
  • (算法)Game
  • (学习日记)2024.02.29:UCOSIII第二节
  • (原)本想说脏话,奈何已放下
  • (转载)深入super,看Python如何解决钻石继承难题
  • ./和../以及/和~之间的区别
  • .aanva
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET开发人员必知的八个网站