在Qt资源系统中(qt 5.0.2),读写文件。

8

我有以下代码。我正在使用Qt_5_0_2_MSVC2012_64bit-Release。我无法读取文件。我收到“无法打开文件以进行阅读”的debug错误消息。对于资源文件,我遇到了一些问题。你有什么办法可以修复它吗?谢谢!

#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();
}

2
  1. 在您的调试输出中添加mFile.errorString()以了解更多关于确切原因的信息
  2. 添加qrc文件的内容
- Frank Osterfeld
请注意,Qt资源在编译后可以被读取但无法被写入。 - user4516901
2个回答

4
我遇到了同样的问题,错误字符串是“未知错误”。解决方法是按照@gatto的回答添加INCLUDEPATH += .,然后在菜单中运行命令。
1. Build -> Clean all
2. Build -> Run qmake
3. Build -> Rebuild All

2

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文件),以便定位错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接