Sur cette page

Qt Quick Controls - Liste de contacts

Une application QML utilisant Qt Quick Controls et une classe C++ qui implémente une liste de contacts simple.

L'exemple de liste de contacts montre comment intégrer un backend C++ de manière compatible avec le concepteur d'Qt Quick. Pour les parties déclaratives de l'interface utilisateur, on utilise des fichiers .ui.qml qui peuvent être modifiés visuellement dans le concepteur d'Qt Quick.

Application de liste de contacts affichant les noms et les adresses

Backend C++

L’application de liste de contacts permet à l’utilisateur d’ajouter, de modifier et de supprimer des contacts. L’implémentation proprement dite est réalisée en C++ et exposée sous forme de classe « QAbstractListModel ».

La classe C++ ContactModel est enregistrée sous un espace de noms, puis importée et instanciée par MainForm.ui.qml. Pour plus d'informations sur l'enregistrement de classes C++ en tant que types QML, consultez la section « Définition de types QML à partir de C++ ».

#include <QtQml/qqml.h>
...
qmlRegisterType<ContactModel>("Backend", 1, 0, "ContactModel");
...

Prise en charge par le Designer

Dans le sous-répertoire « designer », nous créons un plugin qui remplace le ContactModel dans Qt Quick Designer. Pour que cela fonctionne, nous ajoutons la ligne suivante au fichier contactlist.pro.

QML_DESIGNER_IMPORT_PATH = $$PWD/designer

Comme le Designer d’ Qt Quick ne peut pas instancier la classe C++ ContactModel, nous définissons une maquette à l’aide d’un ListModel. Cela garantit que l’ ListView utilisant le modèle affiche bien quelque chose dans le Designer d’ Qt Quick.

Exécution de l’exemple

Vous pouvez exécuter l’exemple à partir de :

Exemple de projet sur code.qt.io

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