在 Qt 资源系统 (qt 5.0.2) 中读取和写入文件

Posted

技术标签:

【中文标题】在 Qt 资源系统 (qt 5.0.2) 中读取和写入文件【英文标题】:Reading from and writing to file in The Qt Resource System (qt 5.0.2) 【发布时间】:2013-04-27 09:45:59 【问题描述】:

我有下面的代码。我正在使用 Qt_5_0_2_MSVC2012_64bit-Release。我无法读取文件。我收到“无法打开文件进行读取”的调试错误消息。资源文件对我来说有些问题。知道如何解决吗?谢谢!

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

【问题讨论】:

1) 将 mFile.errorString() 添加到您的调试输出中以了解有关确切原因的更多信息 2) 添加 qrc 文件的内容 请注意,Qt资源编译后可以读取但不能写入。 【参考方案1】:

我有同样的问题。错误字符串是“未知错误”。 解决方案是从 @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 文件)。

【讨论】:

以上是关于在 Qt 资源系统 (qt 5.0.2) 中读取和写入文件的主要内容,如果未能解决你的问题,请参考以下文章

Qt 和 JSON 资源解析 - 空 QJSONDocument

QT读取文本文件

如何在 Qt 5 中写入和读取 QResource 文件?

名为 Boxes 的 Qt 示例在 Ubuntu 上工作,但在 Windows 上不工作 (Qt 5.0.2)

Boost Subgraph Copy Constructor 不适用于 Qt 5.0.2 和 MinGW

QT在linux环境下读取和设置系统时间(通过system来直接调用Linux命令,注意权限问题)