我在/home/me/xmls/foo/bar.xml中有一个文件 和包含此路径的正确qrc文件
以下代码:
QFileInfo f (":/foo/bar.xml");
cout<<f.absoluteFilePath().toAscii().data()<<endl;
输出:
:/富/ bar.xml
当我期待的时候:
/home/me/xmls/foo/bar.xml
有没有办法恢复QRessource加载文件系统中的绝对路径?
答案 0 :(得分:3)
QResource将其内容编码为一个文件,该文件被编译成最终的二进制文件。所以,不,我不希望在运行时获得原始路径是不可能的。正如Qt docs state: -
Qt资源系统是一种独立于平台的机制,用于在应用程序的可执行文件中存储二进制文件
此外,想要原始路径没有意义,因为其他用户不太可能在该位置拥有该文件。
答案 1 :(得分:1)
这:
QFileInfo f (":/foo/bar.xml");
表示您要从资源文件加载文件。基本上,这是一个库(静态或共享),它包含资源(图像,翻译等)。
这是访问资源中文件的标准语法,如in their documentation for the resources所述。