C++/Qt - 无法从 qrc 文件打开 .txt

标签 c++ qt qfile qresource

我尝试了很多东西,但都没有用。

我正在使用 Qt 5.9.1,我想在 QFile 变量中打开一个 .txt 文件(在 qrc 文件中),如下所示:

QFile file(":/txt/config");

我也试过用

QFile file("qrc:/txt/config"); 

这是 qrc 文件(摘要):

<qresource prefix="/txt">
    <file alias="config">resources/files/config.txt</file>
</qresource>

我的 .pro 确实有 INCLUDEPATH += .

我已经尝试过:

Build -> Clean all
Build -> Run qmake
Build -> Build all

它没有任何改变,在每次启动时,我都有这个输出:

QIODevice::read (QFile, ":/txt/config"): device not open

.qrc 中的路径是正确的,QtCreator 在我浏览目录时找到该文件并像普通文本文件一样在编辑器中打开它

感谢您的帮助,对不起我的英语...(编辑功能不允许我在顶部添加大家好,所以我在这里说:))

最佳答案

您不能打开资源文件进行写入,因为内容嵌入在应用程序二进制文件中。您必须以只读方式打开它:

QFile file(":/txt/config");
if(!file.open(QIODevice::ReadOnly)) {
    qDebug() << "error: " << file.errorString();
}

关于C++/Qt - 无法从 qrc 文件打开 .txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46381694/

相关文章:

c++ - 在哪里画 size_t 和 unsigned int 之间的界限?

c++ - 什么是隐式接口(interface)?

windows - Dependency Walker 父导入函数列表显示来自不同库的函数

c++ - Qt5,文件夹的符号链接(symbolic link)

c++ - QFileInfo exists() 和 isFile() 错误

Qt 不能创建/写入 C :\

c++ - 如何在读取 STDIN 时获取 llvm::MemoryBuffer 的内容?

c++ - 如何定义在 SFML 游戏中使用多少 CPU?

c++ - 面向对象编程 : Initiating ab object in a GUI

c++ - 调整整个 QTableWidget 的大小(不是列或行)