Loader3D QML Type
Permet le chargement dynamique d'un sous-arbre 3D à partir d'une URL ou d'un composant. Plus d'informations...
| Import Statement: | import QtQuick3D |
| Inherits: |
Propriétés
- active : bool
- asynchronous : bool
- item : object
- progress : real
- source : url
- sourceComponent : Component
- status : enumeration
Signaux
- loaded()
Méthodes
- object setSource(url source, object properties)
Description détaillée
Loader3D est utilisé pour charger dynamiquement des composants QML pour Qt Quick 3D.
Loader3D peut charger un fichier QML (à l'aide de la propriété source ) ou un objet Component (à l'aide de la propriété sourceComponent ). Il est utile pour retarder la création d'un composant jusqu'à ce qu'il soit nécessaire : par exemple, lorsqu'un composant doit être créé à la demande, ou lorsqu'un composant ne doit pas être créé inutilement pour des raisons de performance.
Remarque : Loader3D fonctionne de la même manière que Loader. La différence entre les deux est que Loader permet de charger dynamiquement des objets qui héritent de Item, alors que Loader3D permet de charger des objets qui héritent de Object3D et qui font partie d'une scène 3D.
Documentation sur les propriétés
active : bool
La valeur de cette propriété est true si le site Loader3D est actuellement actif. La valeur par défaut de cette propriété est true.
Si Loader3D est inactif, la modification de source ou sourceComponent n'entraînera pas l'instanciation de l'élément tant que Loader3D ne sera pas actif.
La définition de la valeur inactive entraînera la libération de tout item chargé par le chargeur, mais n'affectera pas le source ou le sourceComponent.
Le status d'un chargeur inactif est toujours Null.
Voir également source et sourceComponent.
asynchronous : bool
Cette propriété indique si le composant sera instancié de manière asynchrone. La valeur par défaut est false.
Lorsqu'elle est utilisée conjointement avec la propriété source, le chargement et la compilation seront également effectués dans un fil d'exécution en arrière-plan.
Le chargement asynchrone crée les objets déclarés par le composant sur plusieurs images, ce qui réduit la probabilité de problèmes d'animation. Lors d'un chargement asynchrone, le statut devient Loader3D.Loading. Une fois que l'ensemble du composant a été créé, le site item est disponible et l'état devient Loader.Ready.
La modification de la valeur de cette propriété à false alors qu'un chargement asynchrone est en cours forcera l'achèvement immédiat et synchrone. Cela permet de commencer un chargement asynchrone et de forcer ensuite l'achèvement si le contenu de Loader3D doit être accessible avant que le chargement asynchrone ne soit terminé.
Pour éviter de voir les éléments se charger progressivement, définissez visible de manière appropriée, par exemple
Loader3D { source: "mycomponent.qml" asynchronous: true visible: status == Loader3D.Ready }
Notez que cette propriété n'affecte que l'instanciation des objets ; elle n'est pas liée au chargement asynchrone d'un composant via un réseau.
item : object [read-only]
Cette propriété contient l'objet de premier niveau qui est actuellement chargé.
progress : real [read-only]
Cette propriété indique la progression du chargement des données QML à partir du réseau, de 0.0 (rien de chargé) à 1.0 (terminé). La plupart des fichiers QML étant assez petits, cette valeur passera rapidement de 0 à 1.
Voir aussi status.
source : url
Cette propriété contient l'URL du composant QML à instancier.
Pour décharger l'objet actuellement chargé, attribuez à cette propriété la valeur d'une chaîne vide ou attribuez à sourceComponent la valeur de undefined. Le fait d'attribuer à source une nouvelle URL entraînera également le déchargement de l'élément créé par l'URL précédente.
Voir également sourceComponent, status, et progress.
sourceComponent : Component
Cette propriété contient l'adresse Component à instancier.
Item { Component { id: redCube Model { source: "#Cube" materials: DefaultMaterial { diffuseColor: "red" } } } Loader3D { sourceComponent: redCube } Loader3D { sourceComponent: redCube; x: 10 } }
Pour décharger l'objet actuellement chargé, définissez cette propriété à undefined.
Voir également source et progress.
status : enumeration [read-only]
Cette propriété indique l'état du chargement de QML. Elle peut être l'une des suivantes
| Constante | Description |
|---|---|
Loader3D.Null | Le chargeur est inactif ou aucune source QML n'a été définie. |
Loader3D.Ready | La source QML a été chargée. |
Loader3D.Loading | La source QML est en cours de chargement. |
Loader3D.Error | Une erreur s'est produite lors du chargement de la source QML. |
Utilisez ce statut pour fournir une mise à jour ou répondre au changement de statut d'une manière ou d'une autre. Par exemple, vous pouvez
- Déclencher un changement d'état :
State { name: 'loaded'; when: loader.status == Loader3D.Ready }
- mettre en œuvre un gestionnaire de signal
onStatusChanged:Loader3D { id: loader onStatusChanged: if (loader.status == Loader3D.Ready) console.log('Loaded') }
- se lier à la valeur de l'état :
Text { text: loader.status == Loader3D.Ready ? 'Loaded' : 'Not loaded' }
Notez que si la source est un fichier local, le statut sera initialement Ready (ou Error). Bien qu'il n'y ait pas de signal onStatusChanged dans ce cas, le signal onLoaded sera toujours invoqué.
Voir également progress.
Documentation sur les signaux
loaded()
Ce signal est émis lorsque le site status devient Loader3D.Ready, ou lors d'un chargement initial réussi.
Le gestionnaire correspondant est onLoaded.
Note : Le gestionnaire correspondant est onLoaded.
Documentation de la méthode
object setSource(url source, object properties)
Crée une instance d'objet du composant source donné qui aura le composant properties donné. L'argument properties est facultatif. L'instance sera accessible via la propriété item une fois le chargement et l'instanciation terminés.
Si la propriété active est false au moment où cette fonction est appelée, le composant source donné ne sera pas chargé, mais le source et le properties initial seront mis en cache. Lorsque le chargeur est rendu active, une instance du composant source est créée avec la valeur initiale properties.
La définition des valeurs initiales des propriétés d'une instance d'un composant de cette manière ne déclenchera pas les Behaviorassociés.
Notez que le cache properties sera effacé si le source ou le sourceComponent est modifié après l'appel de cette fonction mais avant la définition du chargeur 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.