c++ - Qt 资源文件

标签 c++ qt

我有一个资源文件

<RCC>
    <qresource prefix="/">
        <file>_initData</file>
        <file>_LOGFILE</file>
    </qresource>
</RCC>

在我的代码中,我可以轻松访问第一个但无法访问第二个。

QFile file(":/_initData");
if (!file.open(QIODevice::ReadOnly)) {
    qDebug() << "Cannot open file to fill avtomatTable";
}

工作正常

QFile file(":/_LOGFILE");
if (!file.open(/*QIODevice::Truncate | */QIODevice::WriteOnly)) {
    qDebug() << "Cannot open LOGFILE";
}

从不工作

我正在使用 KUbuntu。这两个文件都位于该项目的目录/home/template/_projects/4_Disr 中。 我误解了正在发生的事情并准备相信克苏鲁。 有什么建议吗?

最佳答案

据我所知,资源中封装的所有数据都是只读的... rcc 将所有资源编译成二进制形式,通常是压缩它们,所以你不能以写入方式访问它们。

这意味着您的文件夹中的文件在编译时获取并添加到文件 .rcc 中,该文件用作资源的源文件。磁盘上的文件只是从哪个资源文件组装的来源,您的程序不使用它们,只是 rcc。

您应该将日志文件创建为独立文件,一切都会正常进行。不要嵌入到资源系统中。

关于c++ - Qt 资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6125387/

相关文章:

qt - 使用 Doxygen 记录 Qt 项目

qt - 连接丢失时未检测到 QNetworkReply 错误信号

c++ - 使用带有 OpenGL 和 Qt 的 Oculus PC SDK 的黑屏

Python在PyQt中一键调用两个函数

c++ - 在堆数据结构中环绕问题

c++ - 为什么我的默认参数被忽略?

c++ - 我的 for 循环没有给我所有的数字

qt - 在 Symbian/Qt 中检测电话方向变化的问题

c++ - dlib vs opencv 什么时候使用

python - 在无法访问库源的情况下将 swig c++ 用于 python