如何将文本文件包含到qt应用程序中?

def*_*ant 11 xml qt file

我有文本文件,我需要逐行获取数据.因此,如果我的应用程序启动,它可以从文本文件中读取以显示信息.但我不想单独提供我的文本文件和我的应用程序.这该怎么做?好吧,我必须使用Qt这样做!

我听说使用xml将是一种更好,更简单的方法来实现这一目标.

Ger*_*ann 16

您必须将qt资源文件(.qrc)添加到项目中

它可能看起来像这样:

<RCC>
    <qresource prefix="/">
        <file>file.xml</file>
        <file>files/file2.xml</file>
    </qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)

之后,您必须将该资源文件添加到项目文件(.pro)

像这样例如:

RESOURCES += myqrcfile.qrc
Run Code Online (Sandbox Code Playgroud)

之后,您可以在代码中使用该文件,使用字符':'来引用该文件

也许是这样的:

QFile data(":/file.xml");
//or
QFile data(":/files/file2.xml");
//etc...
Run Code Online (Sandbox Code Playgroud)

请记住,您为文件定义的路径(在qrc中)也必须与文件系统中文件的位置相对应.

希望这会有所帮助,有关更多信息,我建议您阅读Gorkem Ercan发布的文档的链接.


小智 8

Qt资源系统是您正在寻找的.


Man*_*gor 5

此类代码适用于 Qt 5.2 :

QResource common(":/phrases/Resources/Phrases/Common.xml");

QFile commonFile(common.absoluteFilePath());

if (!commonFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
    qDebug() << "Unable to open file: " << commonFile.fileName() << " besause of error " << commonFile.errorString() << endl;

    return;
}

QTextStream in(&commonFile);

QString content = in.readAll();
Run Code Online (Sandbox Code Playgroud)