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. 的商标。所有其他商标均为其各自所有者的财产。