在Qt资源系统中读取和写入文件(qt 5.0.2)
问题描述:
我有下面的代码。我正在使用Qt_5_0_2_MSVC2012_64bit-Release。我无法读取文件。我收到“无法打开文件进行读取”的调试错误消息。资源文件对我来说存在一些问题。任何想法如何解决它?谢谢!在Qt资源系统中读取和写入文件(qt 5.0.2)
#include <QCoreApplication>
#include <QFile>
#include <QString>
#include <QDebug>
#include <QTextStream>
#include <QResource>
#include <QIODevice>
void Read(QString Filename){
QFile mFile(Filename);
if(!mFile.open(QFile::ReadOnly | QFile::Text)){
qDebug() << "could not open file for read";
return;
}
QTextStream in(&mFile);
QString mText = in.readAll();
qDebug() << mText;
mFile.close();
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Read(":/MyFiles/myfile.txt");
return a.exec();
}
答
test.pro
:
TEMPLATE = app
TARGET = test
INCLUDEPATH += .
# Input
SOURCES += main.cpp
RESOURCES += test.qrc
test.qrc
:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>MyFiles/myfile.txt</file>
</qresource>
</RCC>
main.cpp
是从你的问题。工作正常。这就是说,如果你仍然有问题,你应该发布最小的Qt项目(包括.pro和.qrc文件),这有错误。
答
我有同样的问题。错误字符串是“未知错误”。
的解决方案是从@加托的答案添加INCLUDEPATH += .
,从菜单中运行命令:
1. Build -> Clean all
2. Build -> Run qmake
3. Build -> Rebuild All
1)添加mFile.errorString()到您的调试输出更多地了解确切的原因2)添加QRC文件的内容 – 2013-04-27 14:31:41
请注意,Qt资源一旦编译就可以读取但不能写入。 – 2015-02-24 18:57:42