Qt avancé pour votre IHM
Pour connaitre les prochaines sessions de formation en Logiciel embarque et programmation cliquez ici.
5 demi-journées
Cette formation se concentre sur la création d’applications Qt performantes même en environnement contraint. La création d’IHM Quick ou Widget sera peu abordée, au profit d’une maîtrise parfaite du cœur de Qt et des principes permettant la conception d’applications puissantes.
 
			
OBJECTIFS
- Créer des applications C++ avec Qt performantes et optimisées
- Réaliser des appels de fonction asynchrones de différentes façons
- Recoder des algorithmes complexes et bloquants de façon non-bloquante pour l’IHM
- Utiliser les différentes techniques de threading
- Optimiser les conteneurs de données pour augmenter les performances et réduire l’empreinte mémoire
- Utiliser la run-loop de Qt
- Utiliser les chaines de caractères (QString) et les tableaux d’octets (QByteArray)
- Déboguer une application
- Packager et distribuer une application
- Découvrir les interfaces graphiques simplistes avec Qt Quick et Qt Widgets et utiliser des objets C++ dans Qt Quick
PUBLIC VISE
Cette formation s’adresse aux Ingénieurs et Développeurs d’interfaces graphiques.
PREREQUIS
Maitrise de C/C++ et de programmation objet indispensables
Un PC avec webcam, haut-parleur et micro et une liaison Internet sont requis
INTERVENANT
Expert en génie logiciel et cybersécurité, développeur professionnel C et C++  et spécialisé sur Qt
Le programme CAP’TRONIC aide, chaque année, 400 entreprises à monter en compétences sur les technologies liées aux systèmes électroniques et logiciel embarqué..
PRIX
Non adhérent : 1 500€ HT
Adhérent CAP’TRONIC : 1200€ HT
Remarque :  Jessica France est titulaire d’un numéro d’agrément de formation continue et est référencé DATADOCK depuis le 1er juillet 2017. Cette formation est éligible au financement par votre Opérateur de Compétences (OPCO) hors CPF.

LIEU
Formation à distance : Les accès à un outil informatique en ligne adapté seront fournis au stagiaire avant le démarrage de la formation. Aucun logiciel spécifique n’est à installer. Seule une connexion à Internet est requise
PROGRAMME
Tour de table
JOUR 1
Présentation de Qt
 Histoire
 	Histoire
 Capacités
 	Capacités
 Exemples
 	Exemples
 Licences de Qt
 	Licences de Qt
 Comparaison avec d’autres outils (Visual Studio, C++ Builder, Xcode)
 	Comparaison avec d’autres outils (Visual Studio, C++ Builder, Xcode)
 Technologies Widget et Quick
 	Technologies Widget et Quick
 Modules de Qt
 	Modules de Qt
 Framework, toolkit et API
 	Framework, toolkit et API
 Modèle d’abstraction
 	Modèle d’abstraction
Qt Creator
 Présentation
 	Présentation
 Les Kits de Qt
 	Les Kits de Qt
 Le fichier projet
 	Le fichier projet
 L’écran principal
 	L’écran principal
 L’éditeur de code
 	L’éditeur de code
 Le designer
 	Le designer
 Le débogueur
 	Le débogueur
 La documentation
 	La documentation
JOUR 2
Conception multi-plateformes
 Du PC à l’embarqué
 	Du PC à l’embarqué
 Stratégie et conception
 	Stratégie et conception
Maîtriser les fondations de Qt
 QObject
 	QObject
 Instanciation et arbre d’objets
 	Instanciation et arbre d’objets
 Entité et identité
 	Entité et identité
 Affinité de thread
 	Affinité de thread
JOUR 3
Maîtriser les fondations de Qt (suite)
 Run-loop
 	Run-loop
 Signal et slot
 	Signal et slot
 Types personnalisés
 	Types personnalisés
 Timers
 	Timers
Programmation asynchrone
 Asynchronisme et non-bloquant
 	Asynchronisme et non-bloquant
 Boucle for non bloquante
 	Boucle for non bloquante
 Pause non bloquante
 	Pause non bloquante
 Fonctions longues non bloquantes
 	Fonctions longues non bloquantes
 Automates à états
 	Automates à états
 Appels asynchrones
 	Appels asynchrones
 Cycle de vie des objets
 	Cycle de vie des objets
JOUR 4
Threads
 Contrôleur de thread
 	Contrôleur de thread
 Bonne pratique : Worker
 	Bonne pratique : Worker
 Pool de threads
 	Pool de threads
 Tâche différée
 	Tâche différée
Propriétés dynamiques
QVariant
 Conteneur universel
 	Conteneur universel
 Transtypage
 	Transtypage
 Types personnalisés
 	Types personnalisés
Bonnes pratiques de conception
 Héritage de QObject
 	Héritage de QObject
 Modes d’instanciation (dynamique vs automatique)
 	Modes d’instanciation (dynamique vs automatique)
 Organisation du code (design-patterns)
 	Organisation du code (design-patterns)
 Cast avec QObject
 	Cast avec QObject
JOUR 5
Conteneurs optimisés
 Copie à l’écriture
 	Copie à l’écriture
 Pointeur partagé
 	Pointeur partagé
 Les conteneurs de Qt
 	Les conteneurs de Qt
 Utiliser ses propres objets en tant que types Qt
 	Utiliser ses propres objets en tant que types Qt
Chaines de caractères et flux de données
 QString
 	QString
 Conversion d’encodage
 	Conversion d’encodage
 QByteArray
 	QByteArray
 Lire et écrire dans un fichier
 	Lire et écrire dans un fichier
 Lire un flux de données
 	Lire un flux de données
Méta-objet
 Introspection
 	Introspection
 Instanciation « aveugle »
 	Instanciation « aveugle »
 Propriétés
 	Propriétés
Interfaçage C++ et QML
 Exposer des classes C++
 	Exposer des classes C++
 Utiliser des objets C++
 	Utiliser des objets C++
 Echanger des données entre C++ et QML
 	Echanger des données entre C++ et QML
 Projet : Cartographie GPS
 	Projet : Cartographie GPS
Packager une application
Tour de table
ORGANISATION
Moyens pédagogiques : Outil de visioconférence - Support de cours - Etude de cas – Démonstration et travaux pratiques Assistance pédagogique sur le cours assurée par le formateur pendant 1 mois à l’issue de la formation.
Moyens permettant d’apprécier les résultats de l’action : Evaluation de l’action de formation par l’envoi d’un questionnaire de satisfaction à chaud à l’issue de la formation, puis d’un questionnaire à froid quelques semaines après la formation.
Moyen permettant de suivre l’exécution de l’action : Evaluation des connaissances via un questionnaire avant et après la formation.
Sanction de la formation : Attestation d’assiduité
RENSEIGNEMENTS ET INSCRIPTION
Bérénice RABIA, rabia@captronic.fr – 06 09 86 49 44
Pour toute question y compris les conditions d’accès pour les publics en situation de handicap.
Les inscriptions sont closes. Pour connaitre les prochaines sessions de formation en Logiciel embarque et programmation cliquez ici.
Informations mises à jour le 27/03/2023
 
                    