NodeInstantiator QML Type

动态创建节点更多

Import Statement: import Qt3D.Core 2.9
Status: Deprecated

属性

信号

方法

详细说明

NodeInstantiator 可用于控制节点的动态创建,或从一个模板动态创建多个对象。

NodeInstantiator 元素将管理其创建的对象。这些对象是 Instantiator 的父对象,如果 NodeInstantiator 的属性发生变化,NodeInstantiator 也可以删除这些对象。节点也可以通过其他方式动态销毁,除非 NodeInstantiator 的属性发生变化,否则 NodeInstantiator 不会重新创建这些节点。

属性文档

active : bool

当 active 为true 时,且委托组件已准备就绪,Instantiator 将根据模型创建对象。当 active 为false 时,将不会创建对象,之前创建的任何对象都将被销毁。

默认值为true


asynchronous : bool

当 asynchronous(异步)为 true 时,Instantiator 将尝试异步创建对象。这意味着,即使 active 设置为 true,对象也可能不会立即可用。

您可以使用objectAdded 信号来响应正在创建的项目。

默认值为false


count : int [read-only]

Instantiator 当前管理的对象数量。


delegate : QtQml::Component [default]

用于创建所有对象的组件。

请注意,委托实例内部将有一个额外的变量 index。该变量指的是 Instantiator 中实例的索引,可用于通过 Instantiator 的 itemAt 方法获取对象。

如果更改了该属性,所有使用旧委托的实例都将被销毁,并使用新委托创建新实例。


model : variant

该属性可设置为任何支持的数据模型

  • 表示中继器要创建的委托数量的数字
  • 模型(例如,ListModel 项目或QAbstractItemModel 子类)
  • 字符串列表
  • 对象列表

模型类型会影响暴露给delegate 的属性。

默认值为 1,即创建一个委托实例。

另请参阅 数据模型


object : QtQml::QtObject [read-only]

这是指向第一个创建对象的引用,目的是在只创建了一个对象的情况下提供方便。


信号文档

objectAdded(int index, QtObject object)

当一个节点被添加到NodeInstantiator 时,就会发出该信号。参数index 保存节点的索引,参数object 保存被添加的Node

相应的处理程序是onNodeAdded

注: 相应的处理程序是onObjectAdded


objectRemoved(int index, QtObject object)

当一个对象从实例器中删除时,就会发出该信号。index 参数包含对象的索引,而object 参数包含已删除的QtObject

如果object 是由 Instantiator 创建的,则不要保留对它的引用,因为在这种情况下,它将在信号处理后不久被删除。

相应的处理程序是onObjectRemoved

注: 相应的处理程序是onObjectRemoved


方法文档

QtQml::QtObject objectAt(int index)

返回给定index 对象的引用。


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