如何使用QResource读取文件?

时间:2012-01-02 11:10:19

标签: c++ qt boost

我有一个文本文件,它被添加到qt的pro文件中的资源文件中。我想通过boost::filesystem访问此文件。我已经知道我必须使用QResource才能这样做,我尝试过几件事:

QResource resource("./Resources/setting_files/accepted_file_extensions.txt");
boost::filesystem3::ifstream fin(resource.absoluteFilePath().toStdString());  

它不起作用,但为什么?

1 个答案:

答案 0 :(得分:1)

QResource用于加载外部二进制资源,这些资源基本上是由其他几个不同文件(图像,文档等)组成的文件。

工作流程为:

  • 使用特定的Qt QRC标记标记创建一个资源文件(.qrc扩展名),指定要合并为二进制文件;
  • 使用命令(对于linux)rcc -binary myresource.qrc -o myresource.rcc;
  • 组合资源数据二进制文件中的所有文件
  • 最后通过QResource::registerResource("/path/to/myresource.rcc");注册,使用QResource实例(动态)包含资源。

这对于仅使用一个文件导入多个文件非常有帮助。这对于嵌入式系统也非常有用。

来源:http://doc.qt.digia.com/qt/resources.html#external-binary-resources