我有一个文本文件,它被添加到 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/