Qt3DRender::QSceneLoader Class
class Qt3DRender::QSceneLoader提供加载现有场景的功能。更多
头文件: | #include <QSceneLoader> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
在 QML 中: | SceneLoader |
继承: | Qt3DCore::QComponent |
状态: | 已废弃 |
- 所有成员的列表,包括继承成员
- QSceneLoader 是Input/Output 和 Networking 的一部分。
公共类型
enum | ComponentType { UnknownComponent, GeometryRendererComponent, TransformComponent, MaterialComponent, LightComponent, CameraLensComponent } |
enum | Status { None, Loading, Ready, Error } |
属性
公共功能
QSceneLoader(Qt3DCore::QNode *parent = nullptr) | |
Qt3DCore::QComponent * | component(const QString &entityName, Qt3DRender::QSceneLoader::ComponentType componentType) const |
Qt3DCore::QEntity * | entity(const QString &entityName) const |
QStringList | entityNames() const |
QUrl | source() const |
Qt3DRender::QSceneLoader::Status | status() const |
公共插槽
void | setSource(const QUrl &arg) |
信号
void | sourceChanged(const QUrl &source) |
void | statusChanged(Qt3DRender::QSceneLoader::Status status) |
详细说明
给定一个 3D 源文件后,Qt3DRender::QSceneLoader 将尝试解析该文件,并用适当的Qt3DRender::QGeometryRenderer 、Qt3DCore::QTransform 和Qt3DRender::QMaterial 组件构建Qt3DCore::QEntity 对象树。
加载器将尝试根据模型文件的属性确定使用的最佳材料。如果您希望使用自定义材料,则必须遍历该树,并用您的材料替换默认的相关材料。
顾名思义,Qt3DRender::QSceneLoader 可加载完整的场景子树。如果您希望加载单个几何体,请使用Qt3DRender::QMesh 。
Qt3DRender::QSceneLoader 内部依赖于插件的使用来支持多种 3D 文件格式。以下是 Qt3D 支持的格式列表。
注意: 该组件不应在多个Qt3DCore::QEntity 实例中共享。否则将导致未定义的行为。
另请参阅 Qt3DRender::QMesh 和Qt3DRender::QGeometryRenderer 。
成员类型文档
enum QSceneLoader::ComponentType
该枚举用于指定组件类型。
常量 | 值 | 描述 |
---|---|---|
Qt3DRender::QSceneLoader::UnknownComponent | 0 | 未知组件类型 |
Qt3DRender::QSceneLoader::GeometryRendererComponent | 1 | Qt3DRender::QGeometryRenderer 组件 |
Qt3DRender::QSceneLoader::TransformComponent | 2 | Qt3DCore::QTransform 组件 |
Qt3DRender::QSceneLoader::MaterialComponent | 3 | Qt3DRender::QMaterial 组件 |
Qt3DRender::QSceneLoader::LightComponent | 4 | Qt3DRender::QAbstractLight 组件 |
Qt3DRender::QSceneLoader::CameraLensComponent | 5 | Qt3DRender::QCameraLens 组件 |
enum QSceneLoader::Status
该枚举标识了加载状态
常数 | 值 | 说明 |
---|---|---|
Qt3DRender::QSceneLoader::None | 0 | Qt3DRender::QSceneLoader 尚未使用。 |
Qt3DRender::QSceneLoader::Loading | 1 | Qt3DRender::QSceneLoader 正在加载场景文件。 |
Qt3DRender::QSceneLoader::Ready | 2 | Qt3DRender::QSceneLoader 已成功加载场景文件。 |
Qt3DRender::QSceneLoader::Error | 3 | Qt3DRender::QSceneLoader 在加载场景文件时遇到错误。 |
属性文档
source : QUrl
保存要加载的源文件的 URL。
访问功能:
QUrl | source() const |
void | setSource(const QUrl &arg) |
通知信号:
void | sourceChanged(const QUrl &source) |
[read-only]
status : const Status
保持场景加载状态。
- SceneLoader.无
- SceneLoader.加载中
- SceneLoader.就绪
- SceneLoader.错误
访问功能:
Qt3DRender::QSceneLoader::Status | status() const |
通知信号:
void | statusChanged(Qt3DRender::QSceneLoader::Status status) |
成员函数文档
[explicit]
QSceneLoader::QSceneLoader(Qt3DCore::QNode *parent = nullptr)
构造函数以指定的parent 创建一个实例。
[invokable]
Qt3DCore::QComponent *QSceneLoader::component(const QString &entityName, Qt3DRender::QSceneLoader::ComponentType componentType) const
返回已加载实体的匹配组件componentType ,该实体的 objectName 与entityName 匹配。如果实体有多个匹配组件,则返回实体组件列表中的第一个匹配组件。如果没有匹配的组件,则返回一个空指针。
注: 可通过元对象系统和 QML 调用该函数。请参阅Q_INVOKABLE 。
[invokable]
Qt3DCore::QEntity *QSceneLoader::entity(const QString &entityName) const
返回已加载的实体,其objectName
与entityName 参数匹配。如果多个实体具有相同的名称,则无法确定返回哪个实体,但总是返回相同的实体。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[invokable]
QStringList QSceneLoader::entityNames() const
返回已加载实体的objectNames
列表。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.