qrc路径_QT中添加的资源文件qrc时的路径问题小结
发布日期:2021-10-31 12:51:58 浏览次数:28 分类:技术文章

本文共 1048 字,大约阅读时间需要 3 分钟。

假设向一个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()<

转载地址:https://blog.csdn.net/weixin_39965881/article/details/111979414 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:应用宝上架审核要求_Android应用商店上架审核要求
下一篇:学大数据要学哪些算法_学习大数据开发前需要掌握哪些技能?

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月03日 03时32分31秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章