无法从qrc打开txt文件

问题描述 投票:0回答:1

我正在开发qml应用程序,在Qt部分我有类TxtLoader,用于从txt文件读取数据并将其发送到QML部分。我创建了 qrc 文件,添加了 d.txt 文件并尝试打开它:

    QFile file(":/d.txt");

    if (!file.open(QIODevice::ReadOnly)) {

        qDebug() << file.errorString();

    }

    QTextStream in(&file);
    QString text;
    text.clear();

    while(!in.atEnd()) {

        QString line = in.readLine();
        text += line;

    }

文件 d.txt 在 qrc 列表中,但出现错误:“没有这样的文件或目录”。 我已经尝试了不同的文件路径方法:“:/d.txt”、“qrc:/d.txt”、“file:///d.txt”、“d.txt”、“qrc:/ //d.txt”,它的唯一工作方式是使用完整路径,但我需要它使用 qrc 中的 url。 我尝试用 Qt Widgets 应用程序做同样的事情,没有 QML,并且它与“:/d.txt”路径一起工作得很好。这里可能有什么问题?

c++ qt qml txt
1个回答
-1
投票

我找到了解决方案。如果您使用 QML,您可以将资源添加到 CMakeLists.txt 文件中:

qt_add_qml_module(appName
    URI appName
    VERSION 1.0
    ...
    RESOURCES Texts/d.txt 
)

然后您可以使用以下路径打开它:

QFile file(":/appName/Texts/d.txt");
© www.soinside.com 2019 - 2024. All rights reserved.