首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QFile.open无法打开资源qrc内的文件

QFile.open无法打开资源qrc内的文件
EN

Stack Overflow用户
提问于 2017-10-30 22:26:04
回答 2查看 1.8K关注 0票数 2

我遇到了一个奇怪的问题,QFile.open无法打开添加到qrc资源文件中的文件。我的qrc文件如下所示

我使用以下代码读取文件theme_normal.qss

代码语言:javascript
运行
复制
QFile file(":/styles/theme_normal.qss");

if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
    QString style(file.readAll());
    file.close();
}
else
{
    QMessageBox::critical(nullptr, "Error", "Error loading style file: " +  file.errorString());
}

我收到以下错误:没有这样的文件或目录

在Qt 5.7.0中,相同的代码(原样)也能正常工作。我正面临着Qt 5.9.2的上述问题。可能的原因是什么?

我的示例项目:https://github.com/warunanc/QtFileFromResources

EN

回答 2

Stack Overflow用户

发布于 2017-11-03 22:32:06

在我类似的情况下,在从应用程序目录(系统:Windows10)中删除所有Qt DLL文件并复制新的DLL文件后,问题就解决了。

例如,我发现在5.9中不再有Qt5CLucened.dll。可能的问题在过时的Qt5CLucened.dll文件中

票数 0
EN

Stack Overflow用户

发布于 2019-03-29 17:02:33

以防任何人有类似的情况。

我的环境: ubuntu 16.04 LTS,Qt 5.9.4。

我试过了:

重新启动system.

  • restart Qt创建器并重新构建project

  • changed qrc

  • 删除qrc的目标文件,然后重新添加

没有任何帮助。

最后,我删除了qrc,并添加了一个新的qrc与相同的名称和相同的文件,并删除旧的qrc_xxx.cpp和qrc_xxx.o的构建文件夹,它也没有帮助。

但是,我删除了qrc并添加了一个不同名称的qrc,这样,旧的qrc命名为res.qrc,新的qrc命名为res1.qrc,然后构建qmake并构建项目,它工作得很好!

我不知道为什么,也许是一些旧的储藏室?这花了我很长时间..):

编辑:我发现原因是,如果你在.pro中使用SUBDIRS,并且有两个项目具有相同的名称qrc,你会遇到这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47017672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档