我遇到一个奇怪的问题,QFile.open
无法打开qrc资源文件中添加的文件。我的qrc文件看起来像这样
我正在使用以下代码来读取文件theme_normal.qss
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的上述问题。可能是什么原因?
答案 0 :(得分:0)
在我的类似情况下,从appication目录(系统:Windows 10)中删除所有Qt DLL文件并复制新的DLL文件后问题得以解决。
我发现在5.9中没有更多的Qt5CLucened.dll。可能的问题是过时的Qt5CLucened.dll文件
答案 1 :(得分:0)
万一有类似的情况。
我的环境:ubuntu 16.04 LTS,Qt 5.9.4。
我尝试过:
重新启动系统。
重新启动Qt创建者
清理项目,构建qmake并重建项目
更改了qrc前缀
删除qrc的目标文件并再次添加
没有帮助。
最后,我删除了qrc并添加了具有相同名称和相同文件的新qrc,并删除了build文件夹中的旧qrc_xxx.cpp和qrc_xxx.o,这也无济于事。
但是,我删除了qrc并添加了一个具有不同名称的新qrc ,例如,旧的qrc名为res.qrc和新的qrc名为res1.qrc,然后构建qmake并构建项目,效果很好!
我不知道为什么,也许有些旧的缓存?我花了很长时间..):
编辑:
我发现原因是,如果您在.pro中使用SUBDIRS
,并且有两个项目具有相同的名称qrc,则会遇到此麻烦。