Qt Quick 3D - Exemple de création d'un modèle dynamique
Démonstration de la création d'un modèle dynamique.
Cet exemple illustre la création dynamique de modèles dans une application. 10 modèles sont créés dynamiquement au début de l'application, et d'autres peuvent être ajoutés ou supprimés à l'aide des boutons + et -.

Mise en place
Nœud Spawner
Nous allons avoir besoin d'un nœud Node pour contenir les modèles créés dynamiquement.
Démarrage
Nous créons 10 modèles sur Component.onCompleted donc l'exemple montre quelque chose au démarrage.
Component.onCompleted: { for (var i = 0; i < 10; ++i) shapeSpawner.addShape() }
Modèles dynamiques
Ajout de modèles
Pour ajouter un nouvel élément à la scène, nous utilisons d'abord la fonction Qt.createComponent pour créer un Component pour notre modèle. Ensuite, nous utilisons la fonction createObject du composant pour instancier l'élément, en passant la position et l'échelle comme paramètres.
function addShape() { var xPos = (2 * Math.random() * range) - range; var yPos = (2 * Math.random() * range) - range; var zPos = (2 * Math.random() * range) - range; var shapeComponent = Qt.createComponent("WeirdShape.qml"); let instance = shapeComponent.createObject(shapeSpawner, { "x": xPos, "y": yPos, "z": zPos, "scale": Qt.vector3d(0.25, 0.25, 0.25)}); instances.push(instance); count = instances.length }
Suppression des modèles
Les modèles créés dynamiquement sont supprimés simplement en les retirant et en les détruisant de la pile d'instances.
function removeShape() { if (instances.length > 0) { let instance = instances.pop(); instance.destroy(); count = instances.length } }
© 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.