[转] 解析Qt资源文件使用
解析Qt资源文件使用
转自:http://mobile.51cto.com/symbian-270121.htm
本文详细的介绍了Qt文件的使用,和大部分GUI框架设计工具一样,Qt也引入了资源文件系统。用于方便地将一些二进制文件(主要是图片文件)编译进可执行程序中,免去再发布应用的时候附带其他文件的麻烦。
本文介绍的是Qt资源文件使用,和大部分GUI框架设计工具一样,Qt也引入了资源文件系统。用于方便地将一些二进制文件(主要是图片文件)编译进可执行程序中,免去再发布应用的时候附带其他文件的麻烦。
Qt的资源文件
是以.qrc为后缀名的XML文本格式。在Qt工程中使用资源文件的话,需要在.pro工程文件加入如下代码
- RESOURCES = file.qrc
在工程文件中加入这样语句后,qmake系统会自动调用RCC(资源文件编译器)将file.qrc转化成qrc_file.cpp,最后使用gcc进行正常的编译。
资源文件的基本格式
来看一个简单的.qrc例子
- images/copy.png
- images/cut.png
- images/new.png
- images/open.png
- images/paste.png
- images/save.png
主要部分和之间的代码,其它部分拷贝过来就可以了,这里的”images /”是相对于你资源文件的路径,和资源文件的格式没有关系。那么你可以在你的源代码中使用QFile访问它们,在本例子中,因为是图片文件,那么你也可以直接用QImage访问它们,不过前面需要加上前缀”:/”,形式为
- QImage(”:/images/copy.png”);
资源文件的别名
如果你的资源文件比较多,而且放在一个比较深的目录里,可以通过别名简化
- images/cut.png
有了别名后,那么在.cpp文件中可以用别名进行访问
- QImage(”:/cut-img.png”);
资源文件的国际化
有些资源文件可能根据使用语言的不同,而使用不同的资源文件。也可以通过别名加语言选项来实现,我没看代码
- cut.jpg
- cut_fr.jpg
在使用上面资源的.cpp代码中,根据系统LANG的不同,可以通过同一语句QImage(”:/cut.jpg”)而能够访问到不同的资源文件。
小结:Qt资源文件使用内容介绍完了,从资源文件的基本格式到资源文件的格式化,一一详细介绍了QT文件。希望这些内容对你有所帮助,有情况的话,也可以留言。
[转] 解析Qt资源文件使用的更多相关文章
- Qt 资源文件
以下演示如何在Qt Creator使用QIcon加载一张 png 图片: 在工程上点右键,选择“添加新文件…”,在 Qt 分类下选择“Qt 资源文件”: 点击“选择…”按钮,打开“新建 Qt 资源文件 ...
- 如何在Qt资源文件中包含和释放exe等各种类型文件?
操作系统:Windows 10 X64 企业版 Qt: 5.8.0 QtCreater: 4.2.1 刚刚开始学习Qt,不断遇到困难和挑战,前几天在各个QQ群里询问如何在Qt的资源文件中包含和释放ex ...
- Windows下 Qt 资源文件(.qrc)文件 的 编写与应用
最近遇到一些项目都包含了qrc文件,这个是Qt的资源文件,如果在pro文件中不包含的话,在编译的时候会提示找不到相应资源的错误. 下面说一下手动修改pro和编写qrc文件的方法. 我们直接在命令行下执 ...
- VS中无法打开Qt资源文件qrc
问题:双击项目中的qrc文件没反应. 解决方法: 网上搜索的方法说是要,右击->打开方式,添加qrceditor编辑器 但我的项目中Qt Resource Editor已经是默认的了. 那就是q ...
- 使用PULL方式解析XML资源文件下面的xml文件
public class MainActivity extends Activity { private Button btn = null; private List<Map<Strin ...
- (五)qt资源文件
// 规则: :+添加的前缀/+文件名 ui->actionSave_as->setIcon(QIcon(":/new/Image/face.png"));
- QT 资源文件的添加
- Qt 学习之路 2(9):资源文件
Qt 学习之路 2(9):资源文件 豆子 2012年8月31日 Qt 学习之路 2 62条评论 上一章节中我们介绍了如何使用QAction添加动作.其中,我们使用QIcon加载了一张 png ...
- Qt笔记——添加菜单图片/添加资源文件
添加新文件,模板选择Qt分类中的Qt资源文件(Qt Resource File) 先添加前缀,点击"添加"按钮,然后选择"添加前缀",我们这里因为要添加图片,所 ...
随机推荐
- Delphi的Socket编程步骤
ClientSocket 和ServerSocket几个重要的属性: 1.client和server都有port属性,需要一致才能互相通信 2.client有Address属性,使用时填写对方 ...
- POJ2451 Uyuw's Concert(半平面交)
题意就是给你很多个半平面,求半平面交出来的凸包的面积. 半平面交有O(n^2)的算法,就是每次用一个新的半平面去切已有的凸包,更新,这个写起来感觉也不是特别好写. 另外一个O(nlogn)的算法是将半 ...
- ZOJ 3555 Ice Climber(dp)
晦涩的题意+各种傻逼害我调了那么久,实际上题目就是一个dp[i][j],dp[i][j]表示第i层第j个最少需要多少时间,当我们去更新dp[i][j]的时候,考虑的是从第i+1层的某一个dp[i+1] ...
- Java-马士兵设计模式学习笔记-观察者模式-读取properties文件改成单例模式
一.概述 1.目标:读取properties文件改成单例模式 二.代码 1.Test.java class WakenUpEvent{ private long time; private Strin ...
- Bootstrap全屏
1.由于bootstrap中的.containter是根据媒体查询定死了width,所以页面不会占满全屏,若要全屏,则最外面的div的class不能用container(或改用.container-f ...
- 关于java中split的使用
之前在http://shukuiyan.iteye.com/blog/507915文中已经叙述过这个问题,但是最近一次笔试中居然有碰到了这个知识点,而且还做错了,囧!学艺不精啊.题目大概是这样的: ) ...
- Mac显示和隐藏文件的命令
打开命令行输入即可,不过要重启Finder才能看到效果 显示: defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏: def ...
- 关于JavaScript的思考
像apply这种函数,只有动态语言才能完成,动态语言既编译器/解释器这类代码生成器完成自己职责时只能在运行时完成,例如函数参数的压栈.仔细想想可能不对,也可以通过编译来完成 apply和call的使用 ...
- javascript Klass 实现
var Klass=function(Parent,props){ var Child,F,i; Child=function(){ if(Child.uber && Child.ub ...
- spring各个包之间的依赖关系
从图中可以看到: 1.spring core,spring beans被其他较多包依赖,spring aop,spring context,spring expression分别被两个包依赖,而spr ...