Qt:从项目资源中打开的 .txt 文件的 QFile 的空内容

Posted

技术标签:

【中文标题】Qt:从项目资源中打开的 .txt 文件的 QFile 的空内容【英文标题】:Qt: empty content of opened QFile for a .txt file from the project resources 【发布时间】:2017-10-29 17:02:38 【问题描述】:

我在 mainwindow.cpp 的项目中尝试过这个:

QString dir = ":/nodesDir/nodesDir/";
QFile baseFile(dir + "allNodeNames.txt");
qDebug() << baseFile.exists(); // true
qDebug() << baseFile.readAll(); // ""

但是错了,文件的内容是

plusOperator

为什么说文件中没有任何内容?或者我的代码中遗漏了什么? 感谢您的回答!

【问题讨论】:

【参考方案1】:

为了读取你需要为它打开的文件,我们使用 open() 并指明我们希望它打开的方式。我们还必须记住,存储在资源中的文件是只读的,因此不能修改。

QString dir = ":/nodesDir/nodesDir/";
QFile baseFile(dir + "allNodeNames.txt");
qDebug() << baseFile.exists(); // true
qDebug()<< baseFile.open(QFile::ReadOnly);
qDebug() << baseFile.readAll(); // ""

输出:

true
true
"plusOperator"

【讨论】:

哦,是的,抱歉忘记了。谢谢,效果很好!

以上是关于Qt:从项目资源中打开的 .txt 文件的 QFile 的空内容的主要内容,如果未能解决你的问题,请参考以下文章

QT对话框打开图像并用QPixmap显示

QT修改mainwindow前的图标,在资源管理器上显示图标也改变

从 Qt Designer 上的不同项目中读取“资源”文件

重定位后打开 Qt 项目

无法在 Qt5/cmake 项目中加载 Qt 资源文件中指定的图像

QT读取文本文件