我正在开发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”路径一起工作得很好。这里可能有什么问题?
我找到了解决方案。如果您使用 QML,您可以将资源添加到 CMakeLists.txt 文件中:
qt_add_qml_module(appName
URI appName
VERSION 1.0
...
RESOURCES Texts/d.txt
)
然后您可以使用以下路径打开它:
QFile file(":/appName/Texts/d.txt");