Qt资源文件

时间:2011-05-25 13:41:36

标签: 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。这两个文件都位于此项目的dir / home / template / _projects / 4_Disr中。 我误解了正在发生的事情,并准备好相信克苏鲁。 有什么建议吗?

1 个答案:

答案 0 :(得分:7)

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

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

您应该将日志文件创建为独立文件,并且一切正常。不要将其嵌入资源系统。