【问题标题】:Extract absolute file path from a QRessource loaded file从 QResource 加载的文件中提取绝对文件路径
【发布时间】:2014-03-02 03:44:13
【问题描述】:

我在 /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加载文件在系统中的绝对路径?

【问题讨论】:

    标签: c++ qt qt4 absolute-path


    【解决方案1】:

    这个:

    QFileInfo f (":/foo/bar.xml");
    

    表示您要从资源文件中加载文件。基本上,这是一个库(静态或共享),其中包含资源(图像、翻译等)。

    这是访问资源中文件的标准语法,如 in their documentation for the resources 所述。

    【讨论】:

      【解决方案2】:

      QResource 将其内容编码成一个文件,该文件被编译成最终的二进制文件。所以,不,我希望在运行时无法获得原始路径。作为Qt docs state:-

      Qt 资源系统是一种独立于平台的机制,用于将二进制文件存储在应用程序的可执行文件中

      此外,想要原始路径是没有意义的,因为其他用户不太可能在该位置拥有该文件。

      【讨论】:

      • 你是对的。我误解了 QResource 及其用法。
      猜你喜欢
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 2016-07-23
      • 2021-10-18
      • 2012-04-24
      相关资源
      最近更新 更多