Instantiator QML Type
动态创建对象。更多
Import Statement: | import QtQml.Models |
属性
- active : bool
- asynchronous : bool
- count : int
- delegate : QtQml::Component
- model : variant
- object : QtObject
信号
- objectAdded(int index, QtObject object)
- objectRemoved(int index, QtObject object)
方法
- QtObject objectAt(int index)
详细说明
Instantiator 可用于控制对象的动态创建,或从一个模板动态创建多个对象。
Instantiator 元素将管理其创建的对象。这些对象是 Instantiator 的父对象,如果 Instantiator 的属性发生变化,Instantiator 也可以删除这些对象。对象也可以通过其他方式动态销毁,除非 Instantiator 的属性发生变化,否则 Instantiator 不会重新创建对象。
注: Instantiator 自 2.14 版起成为QtQml.Models 的一部分,自 2.1 版起成为QtQml 的一部分。自 Qt 5.14 起,通过QtQml 导入 Instantiator 已被弃用。
属性文档
active : bool |
当 active 为 true 且委托组件已准备就绪时,Instantiator 将根据模型创建对象。当 active 为 false 时,将不会创建对象,并且之前创建的任何对象都将被销毁。
默认为 true。
asynchronous : bool |
当 asynchronous(异步)为 true 时,Instantiator 将尝试异步创建对象。这意味着,即使 active 设置为 true,对象也可能不会立即可用。
您可以使用objectAdded 信号来响应正在创建的对象。
默认为 false。
count : int |
Instantiator 当前管理的对象数量。
delegate : QtQml::Component |
用于创建所有对象的组件。
请注意,委托实例内部将有一个额外的变量 index。该变量指的是 Instantiator 中实例的索引,可用于通过 Instantiator 的objectAt 方法获取对象。
如果更改了该属性,所有使用旧委托的实例都将被销毁,并使用新委托创建新实例。
model : variant |
该属性可设置为任何支持的数据模型:
- 表示中继器要创建的委托数量的数字
- 模型(例如ListModel 项目或QAbstractItemModel 子类)
- 字符串列表
- 对象列表
模型类型会影响delegate 所显示的属性。
默认值为 1,即创建一个委托实例。
另请参阅 数据模型。
object : QtObject |
这是指向第一个创建对象的引用,目的是在只创建了一个对象的情况下提供方便。
信号文档
当一个对象被添加到实例器时,就会发出该信号。index 参数包含对象的索引,object 参数包含已添加的QtObject 。
注: 相应的处理程序是onObjectAdded
。
当一个对象从 Instantiator 中移除时,就会发出该信号。index 参数包含该对象的索引,而object 参数则包含已删除的QtObject 。
如果object 是由 Instantiator 创建的,则不要保留对它的引用,因为在这种情况下,它将在信号处理后不久被删除。
注: 相应的处理程序是onObjectRemoved
。
方法文档
© 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.