En esta página

Loader3D QML Type

Permite la carga dinámica de un subárbol 3D desde una URL o Componente. Más...

Import Statement: import QtQuick3D
Inherits:

Node

Propiedades

Señales

Métodos

  • object setSource(url source, object properties)

Descripción detallada

Loader3D se utiliza para cargar dinámicamente componentes QML para Qt Quick 3D.

Loader3D puede cargar un archivo QML (utilizando la propiedad source ) o un objeto Component (utilizando la propiedad sourceComponent ). Es útil para retrasar la creación de un componente hasta que sea necesario: por ejemplo, cuando un componente debe crearse bajo demanda, o cuando un componente no debe crearse innecesariamente por razones de rendimiento.

Nota: Loader3D funciona del mismo modo que Loader. La diferencia entre ambos es que Loader proporciona una forma de cargar dinámicamente objetos que heredan de Item, mientras que Loader3D proporciona una forma de cargar objetos que heredan de Object3D y forma parte de una escena 3D.

Documentación de propiedades

active : bool

Esta propiedad es true si el Loader3D está actualmente activo. El valor por defecto de esta propiedad es true.

Si Loader3D está inactivo, cambiar source o sourceComponent no hará que el elemento se instancie hasta que Loader3D se active.

Establecer el valor a inactivo hará que se libere cualquier item cargado por el cargador, pero no afectará a source o sourceComponent.

El status de un cargador inactivo es siempre Null.

Véase también source y sourceComponent.

asynchronous : bool

Esta propiedad indica si el componente se instanciará de forma asíncrona. Por defecto es false.

Cuando se utiliza junto con la propiedad source, la carga y la compilación también se realizarán en un subproceso en segundo plano.

La carga asíncrona crea los objetos declarados por el componente a través de múltiples fotogramas, y reduce la probabilidad de fallos en la animación. Al cargar de forma asíncrona, el estado cambiará a Loader3D.Loading. Una vez que todo el componente ha sido creado, el item estará disponible y el estado cambiará a Loader.Ready.

Si se cambia el valor de esta propiedad a false mientras se está realizando una carga asíncrona, se forzará la finalización inmediata y síncrona. Esto permite comenzar una carga asíncrona y luego forzar la finalización si se debe acceder al contenido de Loader3D antes de que la carga asíncrona haya finalizado.

Para evitar que los elementos se carguen progresivamente, configure visible adecuadamente, por ejemplo

Loader3D {
    source: "mycomponent.qml"
    asynchronous: true
    visible: status == Loader3D.Ready
}

Tenga en cuenta que esta propiedad sólo afecta a la instanciación de objetos; no está relacionada con la carga asíncrona de un componente a través de una red.

item : object [read-only]

Esta propiedad contiene el objeto de nivel superior que está cargado actualmente.

progress : real [read-only]

Esta propiedad contiene el progreso de la carga de datos QML desde la red, de 0.0 (nada cargado) a 1.0 (finalizado). La mayoría de los archivos QML son bastante pequeños, por lo que este valor cambiará rápidamente de 0 a 1.

Véase también status.

source : url

Esta propiedad contiene la URL del componente QML a instanciar.

Para descargar el objeto cargado actualmente, establezca esta propiedad a una cadena vacía, o establezca sourceComponent a undefined. Establecer source a una nueva URL también hará que se descargue el elemento creado por la URL anterior.

Véase también sourceComponent, status, y progress.

sourceComponent : Component

Esta propiedad contiene el Component a instanciar.

Item {
    Component {
        id: redCube
        Model {
            source: "#Cube"
            materials: DefaultMaterial {
                diffuseColor: "red"
            }
        }
    }

    Loader3D { sourceComponent: redCube }
    Loader3D { sourceComponent: redCube; x: 10 }
}

Para descargar el objeto cargado actualmente, establezca esta propiedad a undefined.

Véase también source y progress.

status : enumeration [read-only]

Esta propiedad contiene el estado de carga de QML. Puede ser uno de los siguientes

ConstanteDescripción
Loader3D.NullEl cargador está inactivo o no se ha establecido ninguna fuente QML.
Loader3D.ReadyLa fuente QML ha sido cargada.
Loader3D.LoadingSe está cargando la fuente QML.
Loader3D.ErrorSe ha producido un error al cargar la fuente QML.

Utilice este estado para proporcionar una actualización o responder al cambio de estado de alguna manera. Por ejemplo, podría

  • Activar un cambio de estado:
    State { name: 'loaded'; when: loader.status == Loader3D.Ready }
  • Implementar un gestor de señales onStatusChanged:
    Loader3D {
        id: loader
        onStatusChanged: if (loader.status == Loader3D.Ready) console.log('Loaded')
    }
  • Vincular al valor de estado:
    Text { text: loader.status == Loader3D.Ready ? 'Loaded' : 'Not loaded' }

Tenga en cuenta que si la fuente es un archivo local, el estado será inicialmente Ready (o Error). Aunque en ese caso no habrá señal onStatusChanged, se invocará onLoaded.

Véase también progress.

Documentación de señales

loaded()

Esta señal se emite cuando status se convierte en Loader3D.Ready, o en caso de carga inicial correcta.

El gestor correspondiente es onLoaded.

Nota: El manejador correspondiente es onLoaded.

Documentación del método

object setSource(url source, object properties)

Crea una instancia de objeto del componente source dado que tendrá el properties dado. El argumento properties es opcional. Se podrá acceder a la instancia a través de la propiedad item una vez que se haya completado la carga y la instanciación.

Si la propiedad active es false en el momento en que se llama a esta función, el componente source dado no se cargará, pero el source y el properties inicial se almacenarán en caché. Cuando el cargador se haga active, se creará una instancia del componente source con el properties inicial establecido.

El establecimiento de los valores iniciales de las propiedades de una instancia de un componente de esta manera no activará ningún Behaviors asociado.

Tenga en cuenta que la caché properties se borrará si se cambia source o sourceComponent después de llamar a esta función pero antes de establecer el cargador active.

Véase también source y active.

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