Obsolete Members for Qt3DCore

Qt3DCore 类的以下成员已被废弃。提供这些成员是为了确保旧的源代码能够继续运行。我们强烈建议不要在新代码中使用它们。

命名空间

(deprecated) namespace Quick

类

(deprecated) class QAbstractAspect
(deprecated) class QAbstractFunctor
(deprecated) class QAbstractSkeleton
(deprecated) class QArmature
(deprecated) class QAspectEngine
(deprecated) class QAspectJob
(deprecated) class QAttribute
(deprecated) class QBackendNode
(deprecated) class QBackendNodeMapper
(since 6.0, deprecated) class QBoundingVolume
(deprecated) class QBuffer
(deprecated) class QComponent
(since 6.0, deprecated) class QCoreSettings
(deprecated) class QEntity
(deprecated) class QGeometry
(since 6.0, deprecated) class QGeometryView
(deprecated) class QJoint
(deprecated) class QNode
(deprecated) class QNodeId
(deprecated) class QSkeleton
(deprecated) class QSkeletonLoader
(deprecated) class QTransform

命名空间

[deprecated] namespace Qt3DCore::Quick

该命名空间已弃用。我们强烈建议不要在新代码中使用它。

类

[deprecated] class Qt3DCore::QAbstractAspect

该类已弃用。我们强烈建议不要在新代码中使用它。

[deprecated] class Qt3DCore::QAbstractFunctor

该类已弃用。我们强烈建议不要在新代码中使用它。

QAbstractFunctor 作为Qt3DCore 模块中所有函子(functor)和数据生成器的基类。

当用户定义新的函子或生成器时,需要实现 `QAbstractFunctor::id()` 方法,这应通过在类定义中使用 `QT3D_FUNCTOR ` 宏来完成。

[deprecated] class Qt3DCore::QAbstractSkeleton

该类已弃用。我们强烈建议不要在新代码中使用它。

请勿直接使用此类。若需从文件中加载骨骼数据(最常见的情况),应使用 `QSkeletonLoader `;若需自行创建骨骼和带贴图的网格数据(主要面向开发编辑器或工具的开发者),则应使用 `QSkeleton `。

[deprecated] class Qt3DCore::QArmature

该类已弃用。我们强烈建议不要在新代码中使用它。

“Armature”组件由实体聚合,以便实体能够计算出正确渲染带骨骼绑定网格所需的皮肤变换矩阵组合。

骨骼绑定网格中的每个顶点都与骨骼中的最多 4 个关节相关联(绑定)。 对于每个影响顶点的关节,网格还会提供一个权重,用于确定相应关节的影响程度。用于执行蒙皮顶点变换的蒙皮矩阵集由 Armature 提供,并根据引用的骨骼中包含的关节计算得出。

更新关节的局部变换会导致重新计算蒙皮矩阵,并与该关节绑定的蒙皮网格顶点随之移动。

[deprecated] class Qt3DCore::QAspectEngine

该类已弃用。我们强烈建议不要在新代码中使用它。

Qt3D 的运行循环由 Qt3DRender::QAspectEngine 控制。

Qt3DCore::QAbstractAspect 子类可通过调用 Qt3DCore::QAspectEngine::registerAspect() 进行注册,该方法将负责注册该方面,并进而调用 Qt3DCore::QAbstractAspect::onRegistered();

一旦在 `Qt3DCore::QAspectEngine` 上设置了根 `Qt3DCore::QEntity `,模拟循环就会立即启动。随后会调用每个方面(aspect)的 `onEngineStartup()` 方法,以便它们开始执行模拟工作。

当根实体被设置为 Qt3DCore::QEntityPtr() 时,模拟循环将停止。这会调用每个切面的 onEngineShutdown() 方法,以便它们停止执行模拟工作。

设置一个新的有效根实体将重新启动模拟循环。

[deprecated] class Qt3DCore::QAspectJob

该类已弃用。我们强烈建议不要在新代码中使用它。

[deprecated] class Qt3DCore::QAttribute

该类已弃用。我们强烈建议不要在新代码中使用它。

属性有 3 种类型。

注意:当 属性类型为DrawIndirectAttribute时 ,仅 count、stride 和 offset 相关。

在提供自定义属性时,建议使用QAttribute::defaultPositionAttributeName()等辅助函数为属性命名,这样可以确保您的几何体与Qt3DExtras 模块中提供的拾取功能和各种材质兼容。

另请参阅 QBuffer 。

[deprecated] class Qt3DCore::QBackendNode

该类已弃用。我们强烈建议不要在新代码中使用它。

[deprecated] class Qt3DCore::QBackendNodeMapper

该类已弃用。我们强烈建议不要在新代码中使用它。

[since 6.0, deprecated] class Qt3DCore::QBoundingVolume

该类已弃用。我们强烈建议不要在新代码中使用它。

实体的包围体常用于许多操作,例如选择或视锥体剔除。它通常通过遍历渲染几何体来计算。

当应用程序已知几何体的范围时,可以使用 QBoundingVolume,这样Qt 3D 就无需进行计算。

边界体积可通过最小和最大范围坐标提供,也可以提供一个单独的、通常更简单的几何体来近似渲染网格。

当使用最小和最大范围时,在几何体的本地坐标系中,这些坐标被视为轴对齐边界框的相对角点。

QBoundingVolume 还可以用于查询GeometryView 的计算出的边界体积。如果几何体发生变化,implicitMinPoint 和implicitMaxPoint 属性将会更新。请注意,此操作是在后台线程上异步进行的,因此在读取这些属性之前,应先检查implicitPointsValid 的值。

您可以通过调用updateImplicitBounds 来强制更新隐式范围。此操作将在调用线程上阻塞,直到结果可用为止。

注意: GeometryRenderer 继承自BoundingVolume ,因此既支持读取隐式边界,也支持设置显式边界。

该类在 Qt 6.0 中引入。

[deprecated] class Qt3DCore::QBuffer

该类已弃用。我们强烈建议不要在新代码中使用它。

数据可直接通过 `QBuffer::setData()` 提供。

[deprecated] class Qt3DCore::QComponent

该类已弃用。我们强烈建议不要在新的代码中使用它。

Qt3DCore::QComponent 提供了一组垂直的行为切片,这些切片可以分配给Qt3DCore::QEntity 实例,有时也可在这些实例之间共享。

Qt3DCore::QComponent 子类通常被聚合为组,从而为聚合实体赋予有用的行为。例如,要使一个实体能够被 Qt3D 渲染器进行绘制,该实体通常会聚合 `Qt3DCore::QTransform`、`Qt3DRender::QMesh` 和 `Qt3DRender::QMaterial ` 组件。

另请参阅 Qt3DCore::QEntity 。

[since 6.0, deprecated] class Qt3DCore::QCoreSettings

该类已弃用。我们强烈建议不要在新代码中使用它。

应将 QCoreSettings 组件设置为场景根实体的组件(尽管它也可以位于场景图的任意位置)。应仅存在一个实例。

它可用于控制Qt 3D 的部分行为。

该类于 Qt 6.0 中引入。

[deprecated] class Qt3DCore::QEntity

该类已弃用。我们强烈建议不要在新代码中使用它。

Qt3DCore::QEntity 本身只是一个空壳。Qt3DCore::QEntity 对象的行为由其引用的Qt3DCore::QComponent 对象定义。每个 Qt3D 后端组件都能通过识别实体由哪些组件构成,来解析和处理该实体。某个组件可能只处理由单个Qt3DCore::QTransform 组件构成的实体,而另一个组件则可能专注于Qt3DInput::QMouseHandler 。

另请参阅 Qt3DCore::QComponent 和Qt3DCore::QTransform 。

[deprecated] class Qt3DCore::QGeometry

该类已弃用。我们强烈建议不要在新代码中使用它。

Qt3DCore::QGeometry 类用于将一组Qt3DCore::QAttribute 对象聚合在一起,形成一个几何形状,Qt3D可以通过Qt3DCore::QGeometryRenderer对该形状进行渲染。可以设置特殊属性来计算该形状的包围体积。

[since 6.0, deprecated] class Qt3DCore::QGeometryView

该类已弃用。我们强烈建议不要在新代码中使用它。

GeometryView 包含处理 Geometry 所需的所有信息。Geometry 包含几何数据的坐标,而GeometryView 则指定了如何解释这些数据。

该类在 Qt 6.0 中引入。

[deprecated] class Qt3DCore::QJoint

该类已被废弃。我们强烈建议不要在新代码中使用它。

QJoint 节点用于构建骨骼,是Qt 3D 中皮肤网格支持功能的一部分。可以通过关节的缩放、旋转和平移属性对其进行变换。与该关节绑定的任何网格顶点,其变换都会相应地更新。

[deprecated] class Qt3DCore::QNode

该类已弃用。我们强烈建议不要在新的代码中使用它。

QNode 的所有权由节点之间的QObject 父子关系决定。QNode 本身既没有视觉外观,也没有特定含义,其存在仅是为了构建基于节点的树形结构。

QNode 实例的父节点只能是另一个 QNode 实例。

每个 QNode 实例都有一个唯一的 ID,使其能够与其他实例区分开来。

当在 QNode 子类上定义属性时,其 NOTIFY 信号将自动生成通知,Qt3D 后端组件将接收这些通知。

另请参阅 QEntity 和QComponent 。

[deprecated] class Qt3DCore::QNodeId

该类已被废弃。我们强烈建议不要在新代码中使用它。

[deprecated] class Qt3DCore::QSkeleton

该类已弃用。我们强烈建议不要在新的代码中使用它。

如果您希望手动创建骨骼的关节以配合蒙皮网格使用,请使用 QSkeleton。这主要适用于开发编辑器、开发工具或动态骨骼的开发者。通常情况下,Qt 3D 应用程序会直接使用由 Blender 等数字内容创作工具生成的现有骨骼和蒙皮网格。 关于此用例,请参阅QSkeletonLoader 。

[deprecated] class Qt3DCore::QSkeletonLoader

该类已弃用。我们强烈建议不要在新代码中使用它。

如果您希望从文件中加载完整的骨骼,而不是使用 Skeleton 和 Joints 自行创建关节,请使用SkeletonLoader 。 创建骨骼并将网格的顶点绑定到骨骼上,最简便的方式是在 Blender 等 3D 数字内容创作工具中完成。随后,生成的骨骼和网格可以导出为 glTF 2 等合适格式,以便在Qt 3D 中使用。

[deprecated] class Qt3DCore::QTransform

该类已弃用。我们强烈建议不要在新代码中使用它。

QTransform组件无法在多个QEntity 之间共享。变换由QVector3D (缩放)、QQuaternion (旋转)和QVector3D (平移)组件组成。这些变换将按此顺序应用于网格。当设置QTransform::matrix 属性时,该属性会被分解为这些变换组件,并触发相应的信号。

提供了若干辅助函数用于设置 QTransform;fromAxisAndAngle 和fromAxesAndAngles 可用于设置围绕特定轴的旋转,fromEulerAngles 可用于根据欧拉角设置旋转,rotateAround 可用于使对象围绕相对于局部原点的特定点进行旋转。

© 2026 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.