Instantiator QML Type

Erzeugt dynamisch Objekte. Mehr...

Import Statement: import QtQml.Models

Eigenschaften

Signale

Methoden

Detaillierte Beschreibung

Ein Instantiator kann zur Steuerung der dynamischen Erstellung von Objekten oder zur dynamischen Erstellung mehrerer Objekte aus einer Vorlage verwendet werden.

Das Instantiator-Element verwaltet die von ihm erstellten Objekte. Diese Objekte sind dem Instantiator übergeordnet und können auch vom Instantiator gelöscht werden, wenn sich die Eigenschaften des Instantiators ändern. Objekte können auch auf andere Weise dynamisch zerstört werden, und der Instantiator wird sie nicht neu erstellen, es sei denn, die Eigenschaften des Instantiators ändern sich.

Hinweis: Instantiator ist Teil von QtQml.Models seit Version 2.14 und Teil von QtQml seit Version 2.1. Der Import von Instantiator über QtQml ist seit Qt 5.14 veraltet.

Dokumentation der Eigenschaft

active : bool

Wenn active true ist und die Delegate-Komponente bereit ist, wird der Instantiator Objekte entsprechend dem Modell erstellen. Wenn active false ist, werden keine Objekte erstellt und alle zuvor erstellten Objekte werden zerstört.

Die Voreinstellung ist true.


asynchronous : bool

Wenn asynchron true ist, versucht der Instantiator, Objekte asynchron zu erstellen. Das bedeutet, dass die 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 Objekten zu reagieren.

Die Voreinstellung 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 eine zusätzliche Variable, index, innerhalb von Instanzen des Delegaten verfügbar sein wird. 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 zu erhalten.

Wenn diese Eigenschaft geändert wird, werden alle Instanzen, die den alten Delegaten verwenden, zerstört und neue Instanzen werden unter Verwendung des neuen Delegaten erstellt.


model : variant

Diese Eigenschaft kann auf jedes der unterstützten Datenmodelle eingestellt werden:

  • Eine Zahl, die die Anzahl der Delegaten angibt, die vom Repeater erstellt werden sollen
  • Ein Modell (z.B. ein ListModel Element, oder eine QAbstractItemModel Unterklasse)
  • Eine String-Liste
  • Eine Objektliste

Die Art des Modells wirkt sich auf die Eigenschaften aus, die der delegate zur Verfügung gestellt werden.

Der Standardwert ist 1, wodurch eine einzelne Delegateninstanz erstellt wird.

Siehe auch Datenmodelle.


object : QtObject [read-only]

Dies ist ein Verweis auf das erste erstellte Objekt, der für den Fall gedacht ist, dass nur ein Objekt erstellt wurde.


Signal Dokumentation

objectAdded(int index, QtObject object)

Dieses Signal wird ausgegeben, wenn ein Objekt zum Instantiator hinzugefügt wird. Der Parameter index enthält den Index, der dem Objekt gegeben wurde, und der Parameter object enthält das QtObject, das hinzugefügt wurde.

Hinweis: Der entsprechende Handler ist onObjectAdded.


objectRemoved(int index, QtObject object)

Dieses Signal wird ausgesendet, wenn ein Objekt aus dem Instantiator entfernt wird. Der Parameter index enthält den Index, der dem Objekt gegeben wurde, und der Parameter object enthält den QtObject, der entfernt wurde.

Behalten Sie keinen Verweis auf object, 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.


Dokumentation der Methode

QtObject objectAt(int index)

Gibt einen Verweis auf das Objekt mit der angegebenen index zurück.


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