c++ - 如何使用 QResource 读取文件?

标签 c++ qt boost

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

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

但它不起作用,但为什么?

最佳答案

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

关于c++ - 如何使用 QResource 读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700114/

相关文章:

C++ boost iostream : mysterious error when including filtering_streambuf. hpp

c++ - opencv 是否实现图像的就地旋转或转置?

c++ - 包含二维数组的类的运算符重载

c++ - 通过 std::vector 的迭代似乎只在一个函数中被破坏

c++ - 如何将 boost::filesystem::directory_entry::path() 值分配给字符串?

c++ - 使用 boost spirit x3 编译时间

c++ - 拥有可变数量的模板参数的最佳方法是什么?

c++ - Enterprise Architect - 单独的代码生成 header 和实现

c++ - 在Qt中,发现所有窗口都关闭了,当使用QApplication::processEvents()时?

c++ - 在 Linux 上构建 Qt 共享库