QSceneLoader 类

class Qt3DRender::QSceneLoader

提供加载现有场景的功能。 更多...

头文件 #include <QSceneLoader>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmakeQT += 3drender
由以下实例化 SceneLoader
继承自 Qt3DCore::QComponent

公共类型

枚举ComponentType { UnknownComponent, GeometryRendererComponent, TransformComponent, MaterialComponent, LightComponent, CameraLensComponent }
枚举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
QStringListentityNames() const
QUrlsource() const
Qt3DRender::QSceneLoader::Statusstatus() const

公共槽

voidsetSource(const QUrl &arg)

信号

voidsourceChanged(const QUrl &source)
voidstatusChanged(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::QMeshQt3DRender::QGeometryRenderer

成员类型文档

enum QSceneLoader::ComponentType

此枚举指定组件类型。

常量描述
Qt3DRender::QSceneLoader::UnknownComponent0未知组件类型
Qt3DRender::QSceneLoader::GeometryRendererComponent1Qt3DRender::QGeometryRenderer 组件
Qt3DRender::QSceneLoader::TransformComponent2Qt3DCore::QTransform 组件
Qt3DRender::QSceneLoader::MaterialComponent3Qt3DRender::QMaterial 组件
Qt3DRender::QSceneLoader::LightComponent4Qt3DRender::QAbstractLight 组件
Qt3DRender::QSceneLoader::CameraLensComponent5Qt3DRender::QCameraLens 组件

enum QSceneLoader::Status

此枚举标识加载的状态

常量描述
Qt3DRender::QSceneLoader::None0尚未使用 Qt3DRender::QSceneLoader
Qt3DRender::QSceneLoader::Loading1Qt3DRender::QSceneLoader 正在加载场景文件。
Qt3DRender::QSceneLoader::Ready2Qt3DRender::QSceneLoader 成功加载了场景文件。
Qt3DRender::QSceneLoader::Error3加载场景文件时,Qt3DRender::QSceneLoader 遇到错误。

属性文档

source : QUrl

持有要加载的源URL。

访问函数

QUrlsource() const
voidsetSource(const QUrl &arg)

通知信号

voidsourceChanged(const QUrl &source)

[read-only] status : const Status

持有场景加载状态。

访问函数

Qt3DRender::QSceneLoader::Statusstatus() const

通知信号

voidstatusChanged(Qt3DRender::QSceneLoader::Status status)

另请参阅:Qt3DRender::QSceneLoader::Status

成员函数文档

[explicit] QSceneLoader::QSceneLoader(Qt3DCore::QNode *parent = nullptr)

此构造函数创建了一个具有指定 parent 的实例。

[可调用] Qt3DCore::QComponent *QSceneLoader::component(const QString &entityName, Qt3DRender::QSceneLoader::ComponentType componentType) const

返回一个匹配 componentType 的已加载实体的组件,该组件的 objectName 与 entityName 相匹配。如果实体有多个匹配的组件,则返回实体组件列表中的第一个匹配项。如果没有匹配项,则返回空指针。

注意:此函数可以通过元对象系统和 QML 进行调用。请见 Q_INVOKABLE

[可调用] Qt3DCore::QEntity *QSceneLoader::entity(const QString &entityName) const

返回一个与 entityName 参数相匹配的中间 objectName 的加载实体。如果多个实体具有相同的名称,则返回哪个不确定,但总是相同的那个。

注意:此函数可以通过元对象系统和 QML 进行调用。请见 Q_INVOKABLE

[可调用] QStringList QSceneLoader::entityNames() const

返回已加载实体的 objectNames 列表。

注意:此函数可以通过元对象系统和 QML 进行调用。请见 Q_INVOKABLE

© 2024 The Qt Company Ltd. 本文件中包含的文档贡献的版权归其各自所有者所有。提供的文档是根据自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款授予的。Qt及其相关标志是芬兰和其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。