Loader3D QML 类型
允许从 URL 或组件动态加载 3D 子树的文件。 更多...
导入语句 | import QtQuick3D |
继承 |
属性
- active : bool
- asynchronous : bool
- item : object
- progress : real
- source : url
- sourceComponent : Component
- status : enumeration
信号
- loaded()
方法
- object setSource(url source, object properties)
详细描述
Loader3D 用于动态加载 Qt Quick 3D 的 QML 组件。
Loader3D 可以 загрузить QML-файл (используя thuộc tính source) или объект Component (используя thuộc tính sourceComponent). Это полезно для откладывания создания компонента до его необходимости: например, когда компонент должен быть создан по запросу, или когда компонент должен не создаваться излишне по причинам производительности.
Заметка: Loader3D работает那样同样的方式, как и Loader. Разница между двумя из них заключается в том, что Loader предоставляет способ динамически загружать объекты, Наследующие от Item, whereas Loader3D предоставляет способ загрузки объектов, Наследующие от Object3D и является частью 3D-сцены.
Документация свойств
active : bool |
This property is true
if the Loader3D is currently active. The default value for this property is true
.
If the Loader3D is inactive, changing the source or sourceComponent will not cause the item to be instantiated until the Loader3D is made active.
Установка значения на неактивное вызовет освобождение любого item загруженного загружателем, но не将对 source или sourceComponent повлиять.
非活动状态下的加载器状态始终为Null
。
另请参阅 source 和 sourceComponent。
异步 : bool |
此属性表示组件是否将异步实例化。默认情况下为false
。
当与source属性一起使用时,加载和编译将在后台线程中执行。
异步加载会在多个帧中创建组件声明的对象,从而降低动画中出错的概率。当异步加载时,状态将更改为Loader3D.Loading。一旦创建整个组件,item将可用,状态将更改为Loader.Ready。
在异步加载进行时更改此属性的值到false
将强制立即、同步地完成。这允许开始异步加载,然后在异步加载完成之前立即强制完成,以便在异步加载完成之前访问Loader3D内容。
为了防止看到项目逐渐加载,请设置适当的visible
,例如。
Loader3D { source: "mycomponent.qml" asynchronous: true visible: status == Loader3D.Ready }
请注意,此属性仅影响对象实例化;它与通过网络异步加载组件无关。
item : object |
此属性保存当前已加载的最高级别对象。
progress : real |
此属性保存从网络加载QML数据的进度,从0.0(未加载任何内容)到1.0(完成)。大多数QML文件都很小,因此此值将快速从0变为1。
另请参阅 status。
source : url |
此属性保存要实例化的QML组件的URL。
为了卸载当前加载的对象,将此属性设置为一个空字符串,或将sourceComponent设置为undefined
。将source
设置为新URL还将导致卸载由先前URL创建的项目。
另请参阅 sourceComponent,status 和 progress。
sourceComponent : Component |
status : 枚举 |
此属性保存QML加载的状态。它可以是以下之一:
常量 | 描述 |
---|---|
Loader3D.Null | 加载器处于非活动状态或未设置QML源。 |
Loader3D.Ready | 已加载QML源。 |
Loader3D.Loading | 当前正在加载QML源。 |
Loader3D.Error | 在加载QML源时发生错误。 |
使用此状态提供更新或以某种方式响应状态变化。例如,您可以
- 触发状态更改
State { name: 'loaded'; when: loader.status == Loader3D.Ready }
- 实现
onStatusChanged
信号处理器Loader3D { id: loader onStatusChanged: if (loader.status == Loader3D.Ready) console.log('Loaded') }
- 绑定到状态值
Text { text: loader.status == Loader3D.Ready ? 'Loaded' : 'Not loaded' }
请注意,如果源文件是本地文件,状态将最初为“就绪”(或者“错误”)。在这种情况下将没有onStatusChanged信号,但onLoaded仍然会被调用。
另请参见 progress。
信号文档
loaded() |
方法文档
object setSource(url source, object properties) |
创建给定source组件的对象实例,它将具有给定的properties。 properties参数是可选的。在加载和实例化完成后,将通过item属性访问实例。
如果在此函数被调用时active属性为false
,则会话给定的source组件将不会被加载,但source和初始的properties将被缓存。当加载器被置为active时,将使用初始的properties创建source组件的实例。
以这种方式设置组件实例的初始属性值将不会触发任何相关Behavior。
注意,如果在设置加载器active之前调用此函数后更改source或sourceComponent,则缓存的properties将被清除。
© 2024 The Qt Company Ltd. 本内含的文档贡献是各自所有者的版权。提供的文档是在GNU自由文档许可版本1.3的条款下发布的,这是由自由软件基金会发布的。Qt和相应的标志是芬兰和/或全世界The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。