Qt Resource系统概说(资源压缩不压缩都可以)
什么是Qt Resource系统?简单的说,就是在可执行程序中存储binary文件,而且还是与平台无关的。
与Qt Resource系统密切相关的有三个法宝,分别是qmake、rcc、QFile。
qmake是一种编译工具,根据developer创建的工程文件,自动生成MakeFile,简化了编译过程。qmake提供了moc和uic编译规则,专门用来支持Qt开发,其中moc是Qt元对象编译器Meta Object Compiler,uic是Qt的UI编译器User InterfaceCompiler。qmake不仅跨平台,而且适用于其它非Qt编写的软件工程,具体用法可参考如下网址:http://doc.qt.io/qt-5/qmake-manual.html
rcc即Resource Compiler,在Qt应用程序编译过程中嵌入Resource,其后缀是.qrc,编译时会生成对应的C++源文件,比如说有一个spring.qrc文件,在.pro文件中有“RESOURCE += Spring.qrc”,编译时就会生成一个qrc_Spring.cpp文件,如果没有用到.pro文件,也可以自行调用rcc或者在编译系统中添加编译规则,如下例子所示:
- rcc -binary Spring.qrc -o Spring.rcc
- QResource::registerResource(''/path/to/Spring.rcc'');
rcc默认压缩Resource为ZIP格式,如果Resource已经是压缩格式了,如.png,再压缩就没必要了,这个可以通过如下命令取消压缩:
- rcc -no-compress Spring.qrc
有关rcc的详细用法可参考如下网址:
http://doc.qt.io/qt-5/rcc.html
QFile是Qt中的一个C++类,提供了文件的读写接口,具体可参考Qt文档。
另,QDir类提供了访问目录结构及内容的方法,QResource类提供了直接读取Resource的接口。
上面提到的.qrc文件是基于XML文件格式的,如下例子所示:
- <!DOCTYPE RCC><RCC version="1.0">
- <qresource>
- <file>images/apple.png</file>
- <file>images/pear.png</file>
- <file alias=''banana-img.png''>images/banana.png</file>
- </qresource>
- <qresource prefix=''/animals''>
- <file>icons/tiger.png</file>
- <file>icons/monkey.png</file>
- <file alias=''fox-icon.png''>icons/fox.png</file>
- </qresource>
- </RCC>
<qresource>标签中的prefix属性可有可无。
<file>标签中的文件路径是相对于当前.qrc文件的,应该在同一级目录或者.qrc文件所在目录的子目录,其alias属性还可以给文件完整路径取个别名。
访问上面添加的文件时,以“:/”或者“qrc:///”开始,接着是prefix,后面是文件的alias属性值或者完整路径,如下例子所示:
- :/images/apple.png
- qrc:///animals/fox-icon.png
http://blog.csdn.net/ieearth/article/details/43524671
Qt Resource系统概说(资源压缩不压缩都可以)的更多相关文章
- Linux系统档案与文件系统的压缩与打包
以下文章基于centos6.5 文章引自:http://www.jb51.net/LINUXjishu/105916.html 一.Linux下常见的压缩指令 在linux的环境中,压缩文件的扩展名大 ...
- 前端性能优化成神之路—资源合并与压缩减少HTTP请求
资源合并与压缩减少HTTP请求的概要 资源合并与压缩减少HTTP请求主要的两个优化点是减少HTTP请求的数量和减少请求资源的大小 http协议是无状态的应用层协议,意味着每次http请求都需要建立通信 ...
- ASP.NET Core 资源打包与压缩
ASP.NET Core 资源打包与压缩 在ASP.NET 中可以使用打包与压缩来提高Web应用程序页面加载的性能. 打包是将多个文件(CSS,JS等资源文件)合并或打包到单个文件.文件合并可减少We ...
- Qt中用QuaZip来压缩和解压缩文件
1.简介 QuaZIP是使用Qt,C++对ZLIB进行简单封装的用于压缩ZIP以及解压缩ZIP的开源库.如果你的Qt项目当中用到了压缩以及解压缩ZIP的话你可以考虑选择使用它. 官方主页:http:/ ...
- 资源的合并与压缩-html压缩
资源的合并:减少http请求数量 资源的压缩:减少请求资源的大小 html压缩 html代码压缩就是压缩这些在文本文件中有意义,但是在html中不显示的字符,包括空格,制表符,换行符等,还有一些其他意 ...
- Linux常用命令学习3---(文件的压缩和解压缩命令zip unzip tar、关机和重启命令shutdown reboot……)
1.压缩和解压缩命令 常用压缩格式:.zip..gz..bz2..tar.gz..tar.bz2..rar .zip格式压缩和解压缩命令 zip 压缩文件名 源文件:压缩文件 ...
- 『学了就忘』Linux基础命令 — 32、压缩和解压缩相关命令
目录 1.".zip"格式压缩 2.".gz"格式压缩 3.".bz2"格式压缩 4.".tar"格式打包 5.打包和压 ...
- Linux下的压缩和解压缩命令——gzip/gunzip
gzip命令 gzip命令用来压缩文件.gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处".gz"扩展名. gzip是在Linux系统中经常使用的一个对文件进行压 ...
- Linux下的压缩和解压缩命令——zip/unzip
zip命令 zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名 的压缩文件. 选项: -A 调整可执行的自动解压缩文件. -b<工作目录> ...
随机推荐
- #上海ORACLE用户组2014在论坛#时刻
#上海ORACLE用户组2014年高峰论坛#精彩瞬间 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXNrbWFjbGVhbg==/font/5a6L5L ...
- .net remoting 使用事件
原文:.net remoting 使用事件 在RPC如果需要使用事件,相对是比较难的.本文告诉大家如何在 .net remoting 使用事件. 目录 使用 Channel 序列化 开发建议 修复异常 ...
- RGB值得计算公式
三原色分别为:红(Red).绿(Green).蓝(Blue). 颜色值=(Red)+(Green*256)+(Blue*256*256) //由三原色值合成颜色整数值 function ColorFr ...
- VS2017 Linux 上.NET Core调试
调试Linux 上.NET Core Visual Studio 2017 通过SSH 调试Linux 上.NET Core 应用程序. 本文环境 开发环境:Win10 x64 Visual Stud ...
- Computer system with dual operating modes
A system switches between non-secure and secure modes by making processes, applications, and data fo ...
- C++一个简单的手柄类模板
#ifndef HANDLE_H #define HANDLE_H #include "Animal.h" template <typename T> class Ha ...
- 微信公众平台自定义菜单接口API指南
微信公众平台开发模式自定义菜单接口API指南 简介 开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建.查询和删除等操作. 自定义菜单接口可实现以下类型按钮: clic ...
- NetCore使用Jwtbearer给WebAPI添加访问控制
原文:NetCore使用Jwtbearer给WebAPI添加访问控制 现在JWT代替session来做访问控制已经成为大部分webapi的做法,今天我们也来尝试一下 WebAPI使用NetCore2. ...
- Kivy A to Z -- Kivy 示例演示自带名单
所有的样品已经在Android 4.04 手机正常进行 1.demo/kivycatalog 这个例子说明了如何使用主控件,例如Layout,Button,MediaPlayer,Progress B ...
- sql server 查询存储过程指令
Sp_helptext PROCEDUREName 例子 创建存储过程 CREATE PROCEDURE SelectFromBitTable AS BEGIN select pkid,isdelet ...