Qt est la bibliothèque de référence pour développer des applications de bureau multiplateformes en C++. Cette formation de 3 jours construit un mini-gestionnaire de contacts enrichi jour après jour — projet CMake, formulaires avec validation, modèles et persistance SQLite, événements et dessin, introduction à QML, tests et outillage. Elle conclut par les apports de l’IA dans un projet Qt.
Public visé
Développeurs informatiques en C++ / Qt.
Prérequis
Avoir suivi cette formation, ou en maîtriser les thèmes abordés :
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Créer un projet Qt6 moderne avec CMake et Qt Creator
- Concevoir des écrans Widgets avec layouts, validation et signaux / slots
- Exploiter le MVC Qt et la persistance SQLite
- Introduire QML dans une application existante
- Mettre en place tests et internationalisation
- Tirer parti d’un assistant IA pour le développement Qt
Programme
Jour 1 - Matin
Fondations et premier écran
Fondations
- situer Qt6 dans l’écosystème
- Widgets vs Quick
- licensing open source et commercial
- modules fournis
- mettre en place l’environnement de développement
- Qt Creator
- CMake en remplacement de qmake
- toolchains et kits
- comprendre l’architecture d’une application Qt
mainetQApplication- event loop
- hiérarchie des objets
Travaux pratiques :
- Arbitrage motivé Widgets / Quick sur 3 cas métier fournis
- Création d’un projet Widgets via CMake dans Qt Creator
- Hello world graphique avec
QApplicationetQMainWindow
Premier écran
- connecter logique et UI avec signaux et slots modernes
- syntaxe pointeur sur méthode
- lambdas comme slots
- connexions typées vérifiées à la compilation
- composer des écrans avec Qt Designer et les layouts
Travaux pratiques :
- Formulaire de contact avec layouts imbriqués et bouton connecté à un slot via lambda
Jour 1 - Après-midi
Saisie et validation
Saisie
- assembler un formulaire avec les widgets usuels
- saisie texte —
QLineEdit,QTextEdit - sélection —
QComboBox,QCheckBox,QRadioButton - tables et listes —
QTableView,QListWidget
- saisie texte —
- manipuler fichiers et chemins standards —
QFile,QFileDialog,QStandardPaths
Travaux pratiques :
- Écran de saisie complet d’un contact
- Chargement et sauvegarde via
QFileDialog
Validation
- valider les entrées utilisateur
QValidatoret variantes —QIntValidator,QDoubleValidatorQRegularExpressionpour patterns- feedback visuel d’erreur
- persister les préférences avec
QSettingset embarquer des ressources
Travaux pratiques :
- Validation email et téléphone via
QRegularExpression - Ressources embarquées pour icônes et logo
- Mémorisation de taille et position de fenêtre via
QSettings
Jour 2 - Matin
Modèles et persistance
Modèles
- appliquer le pattern Modèle / Vue / Délégué
QAbstractListModelpour listes simplesQAbstractItemModelpour structures hiérarchiques- rôles et indices
- adapter l’affichage d’une cellule via un délégué simple
Travaux pratiques :
- Liste de contacts via
QAbstractListModelcustom - Délégué custom pour formater un champ numéro de téléphone
Persistance
- connecter une base de données à une vue
QSqlDatabasepour la connexionQSqlQueryModelpour l’affichage- drivers fournis — SQLite, PostgreSQL, MySQL
- implémenter un CRUD SQLite complet
Travaux pratiques :
- Persistance SQLite avec CRUD complet
- Import et export des contacts en CSV
Jour 2 - Après-midi
Événements et graphisme
Événements
- intercepter et filtrer les événements
QEventet types d’événementseventFilterpour router- propagation et acceptation
- implémenter le drag & drop entre composants
Travaux pratiques :
- Raccourci clavier personnalisé intercepté par event filter
- Dépôt d’un fichier CSV sur la fenêtre pour importer des contacts
Graphisme
- dessiner en 2D avec
QPainter- primitives — lignes, formes, texte
- transformations — translation, rotation, échelle
- rendu d’images et composition
- construire une scène graphique —
QGraphicsView,QGraphicsScene
Travaux pratiques :
- Avatar généré par
QPainterà partir des initiales - Vue graphe des contacts en scène graphique
Jour 3 - Matin
QML et internationalisation
QML
- découvrir QML et son modèle déclaratif
- types, propriétés, bindings
- Qt Quick Controls 2 — contrôles natifs
- composition et réutilisation de composants
- échanger des données entre C++ et QML de manière simple
Travaux pratiques :
- Portage de l’écran principal en QML
- Appel de fonctions C++ depuis QML via
Q_INVOKABLE - Utilisation des contrôles natifs Material
Internationalisation
- internationaliser une application avec Qt Linguist
Travaux pratiques :
- Traduction FR / EN avec changement à chaud via Qt Linguist
Jour 3 - Après-midi
Outillage, qualité, IA
Outillage
- déboguer efficacement sous Qt Creator
- points d’arrêt conditionnels
- inspection d’objets et signaux
- watch expressions
- formater un projet Qt automatiquement avec clang-format
Travaux pratiques :
- Debug d’un scénario fourni avec points d’arrêt et inspection
- Formatage automatique du projet via clang-format
Qualité
- tester une application Qt
- Qt Test pour unitaires
- tests GUI simulant des événements
- intégration en CI
Travaux pratiques :
- Tests unitaires du modèle de contacts
IA
- tirer parti d’un assistant IA sur un projet Qt
- apports — génération de widgets, complétion
Q_PROPERTY - usages — prototypage, refactoring
- limites — erreurs sur API Qt spécifiques
- apports — génération de widgets, complétion
Travaux pratiques :
- Génération assistée d’un nouveau widget via IA et validation par les tests
Travaux pratiques :
- Tests unitaires du modèle de contacts
- Debug d’un scénario fourni avec points d’arrêt et inspection
- Formatage automatique du projet via clang-format
- Génération assistée d’un nouveau widget via IA et validation par les tests
Modalités d’évaluation des acquis
En cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Pour aller plus loin
Cette formation donne accès à cette formation :
Voir aussi
Vous serez peut-être intéressés par les formations suivantes :
Formation DEV-CPP-300 — C++ - Librairie Qt - Initiation. Domaine : Développement. Niveau : Avancé. Durée : 3 jours (21 heures). Mots-clés : c++, développement, initiation, qt, gui. Cylian Formation, Dijon.