2011-05-25 89 views
1

我有一个资源文件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中。 我误解了正在发生的事情,并准备好相信克苏鲁。 有什么建议吗?

回答

7

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

这意味着文件在您的文件夹在编译时被采取并添加到文件.rcc作为您的资源的源文件。你的磁盘上的文件只是源自哪个资源文件被组装,你的程序不会使用它们,只是rcc。

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

+0

Thanks dude!=)我创建它独立,它的工作,但没有资源时。你已经清理了正在发生的事情。再次感谢! – OneMoreVladimir 2011-05-25 13:50:42

+0

@OneMoreVladimir那么为什么不接受他的答案? – 2011-05-25 14:23:00