Instantiator QML Type
Erstellt Objekte dynamisch. Mehr...
| Import Statement: | import QtQml.Models |
Eigenschaften
- active : bool
- asynchronous : bool
- count : int
- delegate : QtQml::Component
- delegateModelAccess : enumeration
(since 6.10) - model : variant
- object : QtObject
Signale
- objectAdded(int index, QtObject object)
- objectRemoved(int index, QtObject object)
Methoden
- QtObject objectAt(int index)
Ausführliche Beschreibung
Ein Instantiator kann verwendet werden, um die dynamische Erstellung von Objekten zu steuern oder um mehrere Objekte dynamisch aus einer Vorlage zu erstellen.
Das Instantiator-Element verwaltet die von ihm erstellten Objekte. Diese Objekte sind dem Instantiator untergeordnet und können auch vom Instantiator gelöscht werden, wenn sich dessen Eigenschaften ändern. Objekte können auch auf andere Weise dynamisch zerstört werden, und der Instantiator erstellt sie nicht neu, es sei denn, seine Eigenschaften ändern sich.
Hinweis: Der Instantiator ist seit Version 2.14 Teil von „ QtQml.Models“ und seit Version 2.1 Teil von „ QtQml “. Der Import des Instantiators über „ QtQml “ ist seit Qt 5.14 veraltet.
Dokumentation zu den Eigenschaften
active : bool
Wenn „active“ auf „true“ gesetzt ist und die Delegate-Komponente bereit ist, erstellt der Instantiator Objekte gemäß dem Modell. Wenn „active“ auf „false“ gesetzt ist, werden keine Objekte erstellt und alle zuvor erstellten Objekte werden zerstört.
Der Standardwert ist „true“.
asynchronous : bool
Wenn „asynchron“ auf „true“ gesetzt ist, versucht der Instantiator, Objekte asynchron zu erstellen. Das bedeutet, dass Objekte möglicherweise nicht sofort verfügbar sind, selbst wenn „active“ auf „true“ gesetzt ist.
Sie können das Signal „ objectAdded “ verwenden, um auf die Erstellung von Elementen zu reagieren.
Der Standardwert ist „false“.
count : int [read-only]
Die Anzahl der Objekte, die der Instantiator derzeit verwaltet.
delegate : QtQml::Component [default]
Die Komponente, die zur Erstellung aller Objekte verwendet wird.
Beachten Sie, dass innerhalb der Instanzen des Delegaten eine zusätzliche Variable namens „index“ verfügbar ist. Diese Variable bezieht sich auf den Index der Instanz innerhalb des Instantiators und kann verwendet werden, um das Objekt über die Methode „ objectAt “ des Instantiators abzurufen.
Wird diese Eigenschaft geändert, werden alle Instanzen, die den alten Delegaten verwenden, zerstört und neue Instanzen unter Verwendung des neuen Delegaten erstellt.
delegateModelAccess : enumeration [since 6.10]
Diese Eigenschaft legt fest, wie Delegaten auf das Modell zugreifen können.
| Konstante | Beschreibung |
|---|---|
DelegateModel.ReadOnly | Verhindert, dass Delegaten das Modell über Kontexteigenschaften, das „ model “-Objekt oder erforderliche Eigenschaften schreiben können. |
DelegateModel.ReadWrite | Erlaubt Delegaten, das Modell über Kontexteigenschaften, das „ model “-Objekt oder erforderliche Eigenschaften zu schreiben. |
DelegateModel.Qt5ReadWrite | Erlaubt Delegaten, das Modell über das „ model “-Objekt und Kontexteigenschaften zu schreiben, jedoch nicht über erforderliche Eigenschaften. |
Die Standardeinstellung ist „ DelegateModel.Qt5ReadWrite “.
Diese Eigenschaft wurde in Qt 6.10 eingeführt.
Siehe auch „Modelle und Ansichten“ unter „ Qt Quick “ #Ändern von Modelldaten.
model : variant
Diese Eigenschaft kann auf eines der unterstützten Datenmodelle gesetzt werden:
- Eine Zahl, die die Anzahl der vom Repeater zu erstellenden Delegaten angibt
- Ein Modell (z. B. ein „ ListModel “-Element oder eine Unterklasse von „ QAbstractItemModel “)
- Eine Zeichenfolgenliste
- Eine Objektliste
Der Modelltyp beeinflusst die Eigenschaften, die dem „ delegate “ zur Verfügung gestellt werden.
Der Standardwert ist 1, wodurch eine einzelne Delegat-Instanz erstellt wird.
Siehe auch „Datenmodelle“.
object : QtObject [read-only]
Dies ist eine Referenz auf das zuerst erstellte Objekt, die als Erleichterung für den Fall gedacht ist, dass nur ein Objekt erstellt wurde.
Signal-Dokumentation
objectAdded(int index, QtObject object)
Dieses Signal wird ausgelöst, wenn dem Instantiator ein Objekt hinzugefügt wird. Der Parameter „ index “ enthält den Index, der dem Objekt zugewiesen wurde, und der Parameter „ object “ enthält das hinzugefügte „ QtObject “.
Hinweis: Der entsprechende Handler ist „ onObjectAdded “.
objectRemoved(int index, QtObject object)
Dieses Signal wird ausgelöst, wenn ein Objekt aus dem Instantiator entfernt wird. Der Parameter „ index “ enthält den Index, der dem Objekt zugewiesen wurde, und der Parameter „ object “ enthält das „ QtObject “, das entfernt wurde.
Behalten Sie keine Referenz auf ` object ` bei, wenn es von diesem Instantiator erstellt wurde, da es in diesen Fällen kurz nach der Bearbeitung des Signals gelöscht wird.
Hinweis: Der entsprechende Handler ist „ onObjectRemoved “.
Methodendokumentation
QtObject objectAt(int index)
Gibt eine Referenz auf das Objekt mit dem angegebenen „ index “ zurück.
© 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.