QSceneLoader 类
class Qt3DRender::QSceneLoader提供加载现有场景的功能。 更多...
| 头文件 | #include <QSceneLoader> | 
| CMake | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) | 
| qmake | QT += 3drender | 
| 由以下实例化 | SceneLoader | 
| 继承自 | Qt3DCore::QComponent | 
- 包括继承成员在内的所有成员列表
- QSceneLoader 是 输入/输出和网络 的一部分。
公共类型
| 枚举 | 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 | 
| 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.None
- SceneLoader.Loading
- SceneLoader.Ready
- SceneLoader.Error
访问函数
| Qt3DRender::QSceneLoader::Status | status() const | 
通知信号
| void | statusChanged(Qt3DRender::QSceneLoader::Status 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. 的商标。所有其他商标均为其各自所有者的财产。