Тип QML Instantiator
Динамически создаёт объекты. Подробнее...
| Заявление импорта: | 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 является частью QtQml.Models начиная с версии 2.14 и частью QtQml начиная с версии 2.1. Импорт Instantiator через QtQml устарел начиная с Qt 5.14.
Документация по свойствам
active : bool
Когда active равно true, и компонент delegate готов, Instantiator будет создавать объекты в соответствии с моделью. Когда active равно false, объекты не будут создаваться, а все ранее созданные объекты будут уничтожены.
Значение по умолчанию — true.
asynchronous : bool
Когда asynchronous равно true, Instantiator будет пытаться создавать объекты асинхронно. Это означает, что объекты могут быть недоступны сразу, даже если active установлено в true.
Вы можете использовать сигнал objectAdded, чтобы реагировать на создание элементов.
Значение по умолчанию — false.
count : int
Количество объектов, которыми в данный момент управляет Instantiator.
[default] delegate : QtQml::Component
Компонент, используемый для создания всех объектов.
Обратите внимание, что внутри экземпляров delegate будет доступна дополнительная переменная index. Эта переменная ссылается на индекс экземпляра внутри Instantiator и может использоваться для получения объекта с помощью метода objectAt Instantiator.
Если это свойство изменено, все экземпляры, использующие старый delegate, будут уничтожены, и новые экземпляры будут созданы с использованием нового delegate.
model : variant
Это свойство может быть установлено в любое из поддерживаемых моделей данных:
- Число, указывающее количество делегатов, которые должны быть созданы повторителем
- Модель (например, элемент ListModel или подкласс QAbstractItemModel)
- Список строк
- Список объектов
Тип модели влияет на свойства, которые доступны delegate.
Значение по умолчанию — 1, которое создаёт один экземпляр delegate.
См. также Модели данных.
object : QtObject
Это ссылка на первый созданный объект, предназначенная как удобство для случая, когда был создан только один объект.
Документация по сигналам
objectAdded(int index, QtObject object)
Этот сигнал излучается, когда объект добавляется в Instantiator. Параметр index содержит индекс, который был присвоен объекту, а параметр object содержит QtObject, который был добавлен.
Примечание: Соответствующий обработчик — onObjectAdded.
objectRemoved(int index, QtObject object)
Этот сигнал излучается, когда объект удаляется из Instantiator. Параметр index содержит индекс, который был присвоен объекту, а параметр object содержит QtObject, который был удалён.
Не храните ссылку на object, если он был создан этим Instantiator, так как в таких случаях он будет удалён вскоре после обработки сигнала.
Примечание: Соответствующий обработчик — onObjectRemoved.
Документация по методам
Возвращает ссылку на объект с заданным index.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtqml-models-instantiator.html