Qt资源文件

One*_*mir 1 c++ qt

我有一个资源文件

<RCC>
    <qresource prefix="/">
        <file>_initData</file>
        <file>_LOGFILE</file>
    </qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)

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

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

工作得很好

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

永远不会奏效

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

Rai*_*aiv 7

封装在资源中的所有数据都是只读的,据我所知... rcc将所有资源编译成二进制形式,通常压缩它们,因此您无法在写入模式下访问它们.

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

您应该将日志文件创建为独立文件,并且所有文件都可以正常工作.不要将它嵌入资源系统.