Types d'objets QML
Un type d'objet QML est un type à partir duquel un objet QML peut être instancié.
En termes syntaxiques, un type d'objet QML peut être utilisé pour déclarer un objet en spécifiant le nom du type suivi d'un ensemble d'accolades qui englobe les attributs de cet objet. Cela diffère des types de valeurs, qui ne peuvent pas être utilisés de la même manière. Par exemple, Rectangle est un type d'objet QML : il peut être utilisé pour créer des objets de type Rectangle. Cela n'est pas possible avec les types primitifs tels que int et bool, qui sont utilisés pour contenir des types de données simples plutôt que des objets.
Les types d'objets QML personnalisés peuvent être définis en créant un fichier .qml qui définit le type, comme indiqué dans Documents en tant que définitions de types d'objets QML, ou en définissant un type QML à partir de C++ et en enregistrant le type avec le moteur QML, comme indiqué dans Définir des types QML à partir de C++. Notez que dans les deux cas, le nom du type doit commencer par une lettre majuscule pour pouvoir être déclaré comme type d'objet QML dans un fichier QML.
Pour plus d'informations sur le C++ et les différentes méthodes d'intégration QML, voir la page de présentation de l'intégration C++ et QML.
Il existe deux types d'objets intégrés qui peuvent être utilisés sans importer d'autres modules : QtObject est le type de base de tous les types d'objets. Component peut être utilisé pour définir de nouveaux types d'objets en ligne dans les documents QML.
Définir des types d'objets à partir de QML
Définition des types d'objets à partir de documents QML
Les auteurs de plugins et les développeurs d'applications peuvent fournir des types définis en tant que documents QML. Un document QML, lorsqu'il est visible par le système d'importation QML, définit un type identifié par le nom du fichier moins les extensions.
Ainsi, si un document QML nommé "MonBouton.qml" existe, il fournit la définition du type "MonBouton", qui peut être utilisé dans une application QML.
Voir la documentation sur les documents QML pour plus d'informations sur la définition d'un document QML et sur la syntaxe du langage QML. Une fois que vous êtes familiarisé avec le langage QML et la définition des documents QML, consultez la documentation qui explique comment définir et utiliser vos propres types QML réutilisables dans les documents QML.
Pour plus d'informations, voir Définir des types d'objets dans des documents QML.
Définition de types anonymes à l'aide d'un composant
Une autre méthode pour créer des types d'objets à partir de QML consiste à utiliser le type Component. Cela permet de définir un type en ligne dans un document QML, au lieu d'utiliser un document distinct dans un fichier .qml.
Item { id: root width: 500; height: 500 Component { id: myComponent Rectangle { width: 100; height: 100; color: "red" } } Component.onCompleted: { myComponent.createObject(root) myComponent.createObject(root, {"x": 200}) } }
Ici, l'objet myComponent définit essentiellement un type anonyme qui peut être instancié à l'aide de Component::createObject pour créer des objets de ce type anonyme.
Les composants en ligne partagent toutes les caractéristiques des composants de premier niveau ordinaires et utilisent la même liste import que le document QML qui les contient.
Notez que chaque déclaration d'objet Component crée sa propre portée de composant. Toute valeur d'identification utilisée et mentionnée dans une déclaration d'objet Component doit être unique dans cette portée, mais n'a pas besoin d'être unique dans le document dans lequel le composant en ligne est déclaré. Ainsi, l'objet Rectangle déclaré dans la déclaration d'objet myComponent pourrait avoir un identifiant root sans entrer en conflit avec l'identifiant root déclaré pour l'objet Item dans le même document, puisque ces deux valeurs d'identifiant sont déclarées dans des champs d'application de composants différents.
Pour plus de détails, voir Portée et résolution de noms.
Définition des types d'objets en C
Les auteurs de plugins C++ et les développeurs d'applications peuvent enregistrer des types définis en C++ grâce à l'API fournie par le module Qt Qml. Il existe plusieurs fonctions d'enregistrement qui permettent chacune de répondre à des cas d'utilisation différents. Pour plus d'informations sur ces fonctions d'enregistrement et sur les spécificités de l'exposition des types C++ personnalisés à QML, voir la documentation relative à la définition des types QML à partir de C++.
Le système de types QML repose sur des importations, des plugins et des extensions installés dans un chemin d'importation connu. Les plugins peuvent être fournis par des développeurs tiers et réutilisés par les développeurs d'applications clientes. Veuillez consulter la documentation sur les modules QML pour plus d'informations sur la façon de créer et de déployer un module d'extension QML.
© 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.