我在/home/me/xmls/foo/bar.xml 一个文件,包含此路径提取绝对文件路径加载文件
如下因素代码正确的QRC文件:
QFileInfo f (":/foo/bar.xml");
cout<<f.absoluteFilePath().toAscii().data()<<endl;
输出:
:/foo/bar.xml
时我期待:
/home/me/xmls/foo/bar.xml
有没有办法恢复的QRessource加载文件系统的绝对路径?
我在/home/me/xmls/foo/bar.xml 一个文件,包含此路径提取绝对文件路径加载文件
如下因素代码正确的QRC文件:
QFileInfo f (":/foo/bar.xml");
cout<<f.absoluteFilePath().toAscii().data()<<endl;
输出:
:/foo/bar.xml
时我期待:
/home/me/xmls/foo/bar.xml
有没有办法恢复的QRessource加载文件系统的绝对路径?
QResource将其内容编码到一个文件中,该文件被编译到最终的二进制文件中。所以,我不希望在运行时无法获得原始路径。由于Qt docs state: -
Qt的资源系统是在应用程序的可执行文件
此外,它没有任何意义存储二进制文件想原来的路径与平台无关的机制,因为其他用户不太可能在该位置拥有该文件。
此:
QFileInfo f (":/foo/bar.xml");
意味着你会从资源文件加载一个文件。基本上,这是一个库(静态或共享),其中包含资源(图像,翻译等)。
这是访问资源中文件的标准语法,如解释in their documentation for the resources所述。
你是对的。我误解了QResource及其用法。 –