NodeInstantiator QML Type
Crea nodos dinámicamente. Más...
| Import Statement: | import Qt3D.Core 2.11 |
| Status: | Deprecated |
Propiedades
- active : bool
- asynchronous : bool
- count : int
- delegate : QtQml::Component
- model : variant
- object : QtQml::QtObject
Señales
- objectAdded(int index, QtObject object)
- objectRemoved(int index, QtObject object)
Métodos
- object objectAt(int index)
Descripción detallada
Un NodeInstantiator puede utilizarse para controlar la creación dinámica de nodos, o para crear dinámicamente múltiples objetos a partir de una plantilla.
El elemento NodeInstantiator gestionará los objetos que cree. Estos objetos están vinculados al Instantiator y también pueden ser eliminados por el NodeInstantiator si las propiedades del NodeInstantiator cambian. Los nodos también pueden destruirse dinámicamente por otros medios, y el NodeInstantiator no los volverá a crear a menos que cambien las propiedades del NodeInstantiator.
Documentación de propiedades
active : bool
Cuando active es true, y el componente delegado está listo, el Instanciador creará objetos según el modelo. Cuando active sea false, no se creará ningún objeto y se destruirá cualquier objeto creado previamente.
Por defecto es true.
asynchronous : bool
Cuando asíncrono es verdadero, el instanciador intentará crear objetos de forma asíncrona. Esto significa que los objetos pueden no estar disponibles inmediatamente, incluso si active está en true.
Puede utilizar la señal objectAdded para responder a la creación de objetos.
Por defecto es false.
count : int [read-only]
El número de objetos que el Instanciador está gestionando actualmente.
delegate : QtQml::Component [default]
El componente utilizado para crear todos los objetos.
Nótese que una variable extra, index, estará disponible dentro de las instancias del delegado. Esta variable se refiere al índice de la instancia dentro del Instantiator, y puede ser utilizada para obtener el objeto a través del método itemAt del Instantiator.
Si se cambia esta propiedad, todas las instancias que utilicen el antiguo delegado serán destruidas y se crearán nuevas instancias utilizando el nuevo delegado.
model : variant
Esta propiedad puede establecerse a cualquiera de los modelos de datos soportados:
- Un número que indica el número de delegados que debe crear el repetidor.
- Un modelo (por ejemplo, un elemento ListModel o una subclase de QAbstractItemModel )
- Una lista de cadenas
- Una lista de objetos
El tipo de modelo afecta a las propiedades que se exponen a delegate.
El valor por defecto es 1, que crea una única instancia de delegado.
Véase también Modelos de datos.
object : QtQml::QtObject [read-only]
Se trata de una referencia al primer objeto creado, pensada como comodidad para el caso en que sólo se haya creado un objeto.
Documentación sobre señales
objectAdded(int index, QtObject object)
Esta señal se emite cuando se añade un nodo a NodeInstantiator. El parámetro index contiene el índice que se ha dado al nodo, y el parámetro object contiene el Node que se ha añadido.
El manejador correspondiente es onNodeAdded.
Nota: El manejador correspondiente es onObjectAdded.
objectRemoved(int index, QtObject object)
Esta señal se emite cuando se elimina un objeto del Instanciador. El parámetro index contiene el índice que se le había dado al objeto, y el parámetro object contiene el QtObject que ha sido eliminado.
No mantenga una referencia a object si fue creado por este Instanciador, ya que en estos casos será eliminado poco después de que se gestione la señal.
El manejador correspondiente es onObjectRemoved.
Nota: El manejador correspondiente es onObjectRemoved.
Documentación del método
object objectAt(int index)
Devuelve una referencia al objeto con la dirección index.
© 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.