Object3D QML Type (Uncreatable)
所有 3D 节点和资源的抽象基类。更多...
注意:这是一个不可创建的类型。无法在 QML 中对其进行实例化。
属性
- children : list<Object3D>
- data : list<Object>
- parent : Object3D
- resources : list<Object>
- state : string
- states : list<State>
- transitions : list<Transition>
详细说明
Object3D 是所有Qt Quick 3D 类型的基类。其中包括:
- 表示三维场景中对象的空间类型,这些对象通常具有位置和/或方向。例如,Model 、Camera 或Light 。此类类型继承自Node ,而 又继承自 Object3D。
- 这类资源类型本身并不代表三维世界中的对象,而是作为Node 子类的组件,提供某种形式的数据。其中包括(但不限于)Material 、Geometry 和Texture 。
除了上述类型外,Object3D 还可以作为 Qt Quick items的父类,以及任意QObject 实例的父类。有关将 2D 元素添加到 3D 场景的更多信息,请参阅Qt Quick 3D 中的“包含 2D 内容的场景”。
另请参阅 Node 。
属性文档
children 属性包含该对象的可视子对象列表。resources 属性包含您希望按名称引用的非可视资源。
在添加子对象或资源时,通常无需直接引用这些属性,因为默认的 `data ` 属性会根据实际情况自动将子对象分配给 `children ` 和 `resources ` 属性。详情请参阅QtQuick3D::Object3D::data 文档。
注意: 尽管名称如此,QtQuick3D ::Object3D::resources 并不返回 3D 资源的列表。 该名称源自QQuickItem 的语义。3D资源是QQuickObject3D的子类,因此会作为QtQuick3D::Object3D::children列表中的元素返回。
data : list<Object> [default]
data 属性允许您在对象中自由混合使用Object3D 的子节点和资源。如果您将Object3D 赋值给 data 列表,它将成为子节点;如果您赋值任何其他类型的对象,它将被添加为资源。
因此,您可以这样编写:
Object3D {
Node {}
DirectionalLight {}
Timer {}
}而不是:
Item {
children: [
Node {},
DirectionalLight {}
]
resources: [
Timer {}
]
}通常无需显式引用 `data ` 属性,因为它是 `Object3D ` 的默认属性,因此所有子对象都会自动分配给该属性。
parent : Object3D
该属性存储了3D场景中Object3D 的父对象。
state : string
该属性存储对象当前状态的名称。
如果该项处于默认状态(即未显式设置任何状态),则该属性保存一个空字符串。同样地,您可以通过将该属性设置为空字符串,将该项恢复为默认状态。
另请参阅 Qt Quick 状态。
states : list<State>
该属性存储了该对象的所有可能状态列表。要更改该对象的状态,请将state 属性设置为这些状态之一;或者将state 属性设置为空字符串,以将对象恢复为默认状态。
该属性指定为一组State 对象的列表。例如,下面是一个具有“above_state”和“below_state”状态的QtQuick3D::Node:
import QtQuick
import QtQuick3D
Node {
id: root
y: 0
states: [
State {
name: "above_state"
PropertyChanges { target: root; y: 100 }
},
State {
name: "below_state"
PropertyChanges { target: root; y: -100 }
}
]
}有关使用状态和过渡的更多详细信息,请参阅《Qt Quick 状态》以及《 Qt Quick 中的动画和过渡》。
注意:此属性的 工作原理与 QtQuick::Item::states 相同,但由于 QtQuick3D::Object3D 并非 QtQuick::Item 的子类,因此该属性是必要的。
另请参阅 QtQuick3D::Object3D::transitions 。
transitions : list<Transition>
该属性保存了此对象的过渡列表。这些过渡定义了每当对象的state 发生变化时,将对其应用的过渡效果。
该属性指定为一组Transition 对象的列表。例如:
import QtQuick
import QtQuick3D
Node {
transitions: [
Transition {
//...
},
Transition {
//...
}
]
}有关使用状态和过渡的更多详细信息,请参阅 Qt Quick 中的《Qt Quick 状态以及 动画与过渡》。
注意:该属性的 工作原理与 QtQuick::Item::transitions 相同,但由于 QtQuick3D::Object3D 并非 QtQuick::Item 的子类,因此该属性是必要的。
另请参阅 QtQuick3D::Object3D::states 。
© 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.