qrc路径_QT中添加的资源文件qrc时的路径问题小结
假设向一个QT的应用程序里添加了资源文件(icon.qrc),然后有在里面添加了下面的内容:
image/DIW.ico
text/1.cpp
看起来向下面的样子:
如果引用上述资源文件里的【1.cpp】,文件的路径应该是“:/text/text/1.cpp”,而不是“:/text/1.cpp”。
为什么?不必追问太多,直接到编译后形成的文件“qrc_icon.cpp”里找答案吧:
看到“qrc_icon.cpp”文件里的内容,有这么几点认识:
① 所添加的各种资源文件,最终被编译成unsigned char,放到字节数组qt_resource_data[]里了;
② 既然这些内容是在编译时已经创建,因此只能做“读”操作,如QFile::open(QIODevice::ReadOnly),而不能做写操作;
③ 每次改动外部被添加资源文件的内容,需要重新编译;
④ 当要使用外部资源文件为文本内容时,注意该文件的编码格式,可以使用常用的文本编辑器notepad++查看当前格式,在QT里要正确显示,或者为系统设置编码格式:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
或者在需要使用的地方,使用明确的编码格式,如下面的QString result字符串:
void MainWindow::readResult(int exitCode)
{
if(exitCode == 0) {
#if defined(Q_OS_WIN32)
QTextCodec* gbkCodec = QTextCodec::codecForName("GBK");
QString result = gbkCodec->toUnicode(p->readAll());
#elif defined(Q_OS_LINUX)
QTextCodec* utfCodec = QTextCodec::codecForName("UTF-8");
QString result = utfCodec->toUnicode(p->readAll());
#endif
QMessageBox::information(this, "dir", result);
}
}
其他如“utf8”格式,总之要和文本文件的编码格式一致。
⑤ 可以将":/"传递到QDir中,枚举其下的文件内容,如下:
QDir d(":/");
qDebug()<
qrc路径_QT中添加的资源文件qrc时的路径问题小结相关推荐
- 【转】QT中添加的资源文件qrc时的路径问题小结
@2019-06-13 [小记] QT中添加的资源文件qrc时的路径问题小结 转载于:https://www.cnblogs.com/skullboyer/p/11014943.html
- qrc路径_QT下添加*.qrc(图标Icon、图像)资源
QT下添加*.qrc(图标Icon.图像)资源 1.最好图像资源等都包含在一个文件夹中,如images: 2.在main函数中强制初始化资源Q_INIT_RESOURCE(filename);如: i ...
- qrc路径_Windows下 Qt 资源文件(.qrc)文件 的 编写与应用
最近遇到一些项目都包含了qrc文件,这个是Qt的资源文件,如果在pro文件中不包含的话,在编译的时候会提示找不到相应资源的错误. 下面说一下手动修改pro和编写qrc文件的方法. 我们直接在命令行下执 ...
- opengl png图片 qt_Qt资源文件的格式,并用CMake添加Qt资源文件
目录 ......QRC文件的写法用CMake添加Qt资源文件添加QRC文件的函数步骤CPP中使用QRC文件使用QRC文件实例程序结果QRC文件CMakeLists.txt文件Dialog.h文件Di ...
- qt qrc html,写一个QT资源文件(qrc)
一个.qrc 文件的例子: images/copy.png images/cut.png images/new.png images/open.png images/paste.png images/ ...
- android jar 加入图片,Android动态加载外部jar包及jar包中图片等资源文件
Android动态加载外部jar包及jar包中图片等资源文件 Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现.动态加载Class,也就是外部jar包,在 ...
- linux驱动:TI+DM8127+GPIO(三)之omap_hwmod中添加GPIO资源
三.[GPIO驱动框架>向omap_hwmod中添加GPIO资源] ***将GPIO硬件信息添加到注册到omap_hwmod_list列表中 Arch/arm/plat-omap/include ...
- 在Xcode6中添加prefix.pch文件
在Xcode6中添加prefix.pch文件 1. 创建prefix.pch文件 2.工程->BuildSettings->prefix END 转载于:https://www.cnblo ...
- 编译过程中,termcap.h 文件找不到路径 licli.a终于生成
编译过程中,termcap.h 文件找不到路径 查看是linux 源码下找不到termcap.h文件 安装了所有关于*cap*的源码包也不起作用 今天终于解决了这个问题,搜termca ...
最新文章
- C语言新手写扫雷攻略3
- 小白也能看懂:一文学会入门推荐算法库 surprise
- [翻译]一步步教你配置SQL SERVER合并复制(五)配置Publisher(上)
- rdlc 分页操作和分页统计
- js封装函数_JavaScript基础-如何封装函数来改变元素的位置
- 为什么只有奇次谐波_关于开关电源谐波失真,这有一份测量分析方法经验分享!...
- java if emun_关于java:Enum与If-else
- 1、什么是Spring框架,Spring框架有哪些主要模块
- [PHP] 算法-邻接矩阵图的广度和深度优先遍历的PHP实现
- 如何调用一个windows上的应用程序呢?
- Android连接管理的评分机制(WIFI,Ethernet,BT,移动数据
- javascript实现blob流、base64,file、base64的互相转换
- Java8 stream流分页(手动分页)
- 在Oracle中查询表的大小、表的占用情况和表空间的大小
- matlab_取整函数
- 赵小楼《天道》《遥远的救世主》深度解析(52)丁元英境界和觉悟的知行合一:超越本能的男人,真好汉也
- HDU-5705-Clock (数学,思维)
- localStorage的使用方法
- 嵌入式linux开发,.mak是什么文件
- 移动优先和桌面优先的状态