首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓冲来自QResource的原始数据?

缓冲来自QResource的原始数据?
EN

Stack Overflow用户
提问于 2012-05-22 11:32:57
回答 1查看 566关注 0票数 0

我正在使用Qt创建一个3ds模型加载器。

我想利用Qt资源系统,并使用它来加载模型等等。

我想做类似这样的语法:

代码语言:javascript
复制
Mesh* MeshLoader::loadMesh(const QString& resource) {
    QResource qResource(resource);
    QResource::registerResource(resource); 
    SomeBuffer buffer(qResource.data())
    while (!buffer.eof()) { 
        // Process the file
    }
    QResource::unregisterResource(resource);
}

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-23 17:56:49

你在帖子中包含的代码有什么问题?

注意:几乎每个Qt数据/流阅读器都可以使用Qt资源符号(路径中的前导:)。例如,您可以使用QFile(":/someresource")。我认为(也许我错了)使用QFile和QDataStream,您可以只读取文件的一小部分,而不必加载整个资源并在读取过程中阻塞线程。如果它阻塞了主线程,你可以随时使用QRunnable或QThread在后台加载资源。

对于缓冲:我不知道Qt中内置了任何缓存解决方案(除了与网络相关的部分),所以您可能应该自己实现它。

这样,您就可以构建一个MyResource类,该类在后台线程中加载目标资源,并在它完成时用信号/槽通知,并且可以按照您想要的方式缓存资源的数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10695383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档