Formations Mobile Multiplateforme Formation Qt 6 Framework : C++ Cross-platform

Formation Qt 6

Rated 4,9 out of 5
Logo Formation Qt
Prix 2430€ HT / personne
Durée 4 jours (28 heures)

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe
Aide au Financement 4000€ de Bonus Atlas en CPF

Présentation

Qt est LE Framework industriel destiné aux applications multiplateformes pour les ordinateurs de bureau, les systèmes embarqués et les téléphones portables. Les plateformes supportées comprennent Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS et bien d’autres encore !

Qt n’est pas qu’un langage de programmation. Il s’agit d’un cadre de travail écrit en C++. Un préprocesseur, le MOC (Meta-Object Compiler), est utilisé pour étendre le langage C++ avec des fonctionnalités telles que les signaux et les slots. Avant la compilation, le MOC analyse les fichiers sources écrits en C++ étendu Qt et génère à partir de ceux-ci des sources C++ conformes aux normes. Ainsi vos Apps peuvent être compilés par n’importe quel compilateur C++ conforme aux normes comme Clang, GCC, ICC, MinGW et MSVC.

La réalisation d’interface Homme-Machine est un enjeu majeur dans une application. Il existe de nombreuses solutions, mais beaucoup sont laborieuses à mettre en place, peu ergonomiques et difficiles à maintenir.

Lorsqu’on veut créer une application en C++, la solution la plus courante et la plus efficace est d’utiliser Qt6.
La formation vous proposera d’apprendre à maîtriser cet outil surpuissant et de créer des interfaces utilisateurs. Comme toutes nos formations, nous vous présenterons la dernière version en date.

Qt6 propose de créer des applications compatibles sur Windows, Mac OS et Linux en s’appuyant sur les éléments graphiques de tous ces systèmes. Vous allez apprendre à créer vos pages avec des boutons connectés à votre code. Vous découvrirez comment dessiner votre application avec l’éditeur graphique QtCreator.
À noter que Qt peut s’utiliser avec Java et Python.

Comme dans toutes nos formations, celle-ci vous présentera la toute dernière version de Qt, à savoir Qt 6.

 

Objectifs

  • Découvrir la puissance du Framework Qt6
  • Savoir utiliser le concepteur graphique QtCreator
  • Savoir développer une nouvelle application
  • Connaître les bases du langage QML
  • Connaître les mécanismes avancés du Framework

 

Public visé

  • Développeur d’application

 

Pré-requis

  • Connaissance basique en C++ (notion d’objet et pointeur)

 

Pré-requis techniques

  • Avoir Qt6 installé
  • Avoir un éditeur comme QT creator
  • Disposer d’un compilateur récent

Programme de la formation Qt 6

 

Jour 1 – Renforcement des bases C++ / Qt / POO

 

C++ et Qt aujourd’hui

  • Évolution de C++ de 2011 à nos jours
  • Évolution de Qt de la version 6.0 à nos jours
  • Qt Widgets vs. QML
  • Un mot sur les licences

 

Programmation Orientée Objet

  • Révision des fondamentaux
  • Principaux Design Patterns… et anti-patterns !
  • Introduction aux principes SOLID

 

Les fondements du C++ moderne

  • Sémantique de valeur vs sémantique de référence
  • Gestion robuste et automatisée des ressources
  • Programmation-objet sans héritage

 

Les concepts essentiels de Qt

  • MVC (Modèle-Vue-Contrôleur)
  • Les extensions apportées au C++ grâce au MOC
  • Le modèle objet spécifique de Qt
  • Fonctionnalités avancées des signaux/slots
  • Divergences et pièges entre C++ traditionnel et Qt

 

Jour 2 – Découverte de QML / QtQuick

 

Présentation de QML / QtQuick

  • Syntaxe du langage et principaux concepts
  • Différences clés avec les widgets
  • Présentation des principaux composants textuels et graphiques
  • Ajout du support de TableView pour cacher les lignes et les colonnes

 

Découverte de QML avec QtCreator

  • Créer des composants réutilisables
  • Positionner ses éléments
  • Fonctionnement du property binding
  • TP : Création d’une application en QML avec QtCreator

 

Interagir avec l’utilisateur

  • Gestion de la souris et des écrans multipoints
  • Gestion du clavier
  • Animation et transitions d’états

 

Présenter des données complexes

  • Repeater et Delegate
  • Utilisation d’un modèle
  • Utilisation d’un proxy de modèle

 

Jour 3 – Approfondir Qt / QML

 

Notions avancées

  • Fonctionnement interne du moteur QML
  • Utilisation d’un loader
  • Création dynamique de composants

 

Interactions C++ / QML

  • Lier son code C++ aux couches de présentation QML
  • Écrire une extension QML en C++
  • Gérer la durée de vie des objets C++ exposés à QML

 

Machine à états et Qt

  • Principe et utilité
  • Fonctionnement de QStateMachine
  • Module Qt SCXML

 

QML dans une vraie application

  • Traduire ses interfaces (Internationalisation)
  • Appliquer des thèmes / styles personnalisés
  • Optimiser et déboguer son code
  • Bonnes pratiques et écueils à éviter

 

Jour 4 – Architecturer et développer un projet complexe

 

Être efficace avec QMake

  • Organiser son projet en modules
  • Supporter plusieurs plateformes et modes de compilation
  • Intégration d’une bibliothèque externe (Qwt)
  • Tests unitaires et intégration continue

 

Multitâche et programmation asynchrone

  • Parallélisme vs concurrence
  • Programmation synchrone vs asynchrone avec Qt
  • Approche moderne du parallélisme avec Qt

 

Développement de plugins avec Qt

  • Le système de plug-ins de Qt
  • Contraintes techniques : ABI et compatibilité binaire
  • Plugins out-of-process : les mécanismes IPC de Qt
  • Plugins vs. scripting (extensibilité)

 

Outillage et conclusion

  • Outils et autres ressources utiles qui n’ont pas pu être présentés
  • Trucs et astuces en vrac
  • Questions / réponses sur l’ensemble des sujets abordés
  • Conclusion

 

Nouvelles fonctionnalités

  • Qt GUI
    • Ajouter QImage:convertTo new API
    • QPainterPath : supporte les méthodes clear, reserve et capacity avec la même sémantique que QVector::clear() (les allocations sont préservées)
  • Qt Network
    • Fenêtres : Prise en charge de la Voie de communication protégée pour la prise SSL
    • Support d’agrafage OCSP
  • Qt QML
    • Amélioration du support des énumérations déclarées en C++.
    • JavaScript « null » comme valeur de liaison est maintenant optimisé lors de la compilation.
    • QML génère maintenant des tables de fonctions sur des fenêtres 64 bits, ce qui permet de dérouler la pile via des fonctions JITed (QTBUG-50061).
  • Qt Quick
    • Ajout du support de TableView pour cacher les lignes et les colonnes
  • Contrôles Qt Quick 2
    • Ajouter SplitView
    • Ajouter une propriété de cache à l’icône
  • Qt Bluetooth
  • Qt 3D
    • Ajout de la prise en charge de l’importation et de l’exportation des poignées de texture OpenGL
    • Ajouté des nœuds de framegraph pour les objets de clôture
    • Ajout d’un prélèvement basé sur la priorité
    • Ajout du support initial de l’importation de scène glTF 2.0
  • Compositeur Qt Wayland
  • Qt WebEngine
    • Application-local client certificate store
    • Prise en charge des certificats clients par QML
    • Affichage PDF via l’extension Chromium interne
    • API des notifications Web
    • Intercepteurs de requêtes d’url spécifiques aux threads et aux pages.
  • Qt WebSockets
  • Qt Emplacement
    • Ajout de la prise en charge des GeoPolygons avec trous, reflétés dans MapPolygons et MapPolygonObjects.
    • Introduction de l’interopérabilité avec GeoJson avec la fonctionnalité d’import/export
  • Test Qt
  • Qt Multimédia
    • Lecture sans faille dans QML VideoOutput en utilisant la propriété flushMode
    • Ajout du support de GStreamer pour Windows/macOS
    • Ajout des en-têtes HTTP et des rôles audio pour Android
    • Ajout de QT_MULTIMEDIA_PREFERRED_PLUGINS pour spécifier les plugins préférés
    • Permis de construire le WMF avec DirectShow ou désactivé par l’option de configuration -no-wmf ou -no-directshow
    • Introduction de QT_PA_CHANNEL_MAP pour QAudioOutput et PulseAudio
    • Sondes vidéo/audio dans DirectShow
    • QMedia La classe QMediaResource est maintenant obsolète
  • Wayland
    • Nouvelle intégration Shell pour fullscreen-shell-unstable-v1.
  • Qt Lottie (TP)
  • Qt pour WebAssembly
  • Qt pour l’automatisation
  • Qt KNX
    • API client sécurisée ajoutée
  • Qt OPC UA
    • API C++ en TP
    • Ajout de l’API QML (TP)
    • Ajout de l’API sécurisée client C++ (TP)
    • UaCpp et Open62542 sont identiques en termes de fonctionnalités
  • Qt CoAP (TP)
  • Modules obsolètes
    • Script Qt
    • Contrôles rapides Qt 1
    • Qt XmlModel XmlListModel

 

Modules annexes (optionnels) – 2 jours supplémentaires

  • Base de données (SQLite)
  • Sérialisation avec QStream
  • Mise en réseau avec QNetwork
  • Responsive design avec QML

Langues et Lieux disponibles

Langues

  • Français
  • Anglais / English

Lieux

  • France entière
    • Paris
    • Lille
    • Reims
    • Lyon
    • Toulouse
    • Bordeaux
    • Montpellier
    • Nice
    • Sophia Antipolis
    • Marseille
    • Aix-en-Provence
    • Nantes
    • Rennes
    • Strasbourg
    • Grenoble
    • Dijon
    • Tours
    • Saint-Étienne
    • Toulon
    • Angers
  • Belgique
    • Bruxelles
    • Liège
  • Suisse
    • Genève
    • Zurich
    • Lausanne
  • Luxembourg

Nos Formateurs Référents

Robin

Robin

Robin travaille dans l’industrie du développement software depuis plus de 10 ans. En passant de startups à de grandes entreprises (SagemCom, JCDecaux, Parrot), il a abordé un large panel de technologies, de l’embarqué au développement web.

Armé de cette expérience, il a co-écrit Mastering Qt 6, un livre sur les techniques avancés en C++ / Qt (2nd édition publiée en 2018). En parallèle, Il utilise et suit le framework Django depuis 8 ans, qu’il a mis en place et maintenu à de nombreuses occasions en entreprise.

Il vous propose de partager son expérience sur Qt et Django et d’échanger avec vous sur un sujet qui le passionne : concevoir des programmes robustes, maintenables et performants.

Témoignages

Rated 5,0 out of 5
21 décembre 2023

Les + : Le niveau du formateur

Les – : C’est très riche donc difficile de mettre en oeuvre tous les concepts

Alain Z. de chez SOCOMATE INTERNATIONAL

Afficher tous les témoignages

Rated 5,0 out of 5
21 décembre 2023

Les + : Le niveau du formateur

Les – : C’est très riche donc difficile de mettre en oeuvre tous les concepts

Alain Z. de chez SOCOMATE INTERNATIONAL
Rated 5,0 out of 5
28 avril 2022

Je recommande la formation

Gaetan O. de chez ALE International
Rated 5,0 out of 5
28 avril 2022

Aurélien

manque un jour

Sandrine H. de chez ALE International
Rated 5,0 out of 5
28 avril 2022

compétences et manière de présenter du formateur

Marc G. de chez ALE International
Rated 5,0 out of 5
4 mars 2022

Je recommande la formation

Norbert . de chez TUFFIGO RAPIDEX
Rated 5,0 out of 5
4 mars 2022

Manque d’exercice durant les premiers jours, mais le contenu est tellement dense que ça aurait été difficile. Très statisfait.

Adrien H. de chez TUFFIGO RAPIDEX
Rated 5,0 out of 5
4 mars 2022

– adaptée aux besoins spécifiques de l’entreprise

– rythme adapté aux participants

– variété des informations apportées

– la connexion faible de mon entreprise (formation en visioconférence)

Merci pour ces très intéressants cours ainsi que toutes les informations partagées .

Patrick R. de chez TUFFIGO RAPIDEX
Rated 5,0 out of 5
4 mars 2022

Je recommande la formation

Eline T. de chez TUFFIGO RAPIDEX
Rated 5,0 out of 5
4 mars 2022

Bons sujets de courts, On a appris différentes façon pour faire des Threads…

Arnaud G. de chez TUFFIGO RAPIDEX
Rated 5,0 out of 5
18 novembre 2021

Les compétences du formateur

Nicolas B. de chez ALE International
Rated 5,0 out of 5
18 novembre 2021

Pratique, adaptation aux questions avec exemples en direct, clarté des explications. Chemin à suivre pour écrire le code très intéressant.

Nécessité d’une connaissance correcte en C++ pour les 2 premiers jours, pour pouvoir suivre. Ecriture/recopie des actions du formateur en direct parfois difficile.

Christophe W. de chez ALE International
Rated 5,0 out of 5
18 novembre 2021

Le contenu et surtout le formateur qui maitrise très bien son sujet.

Cédric B. de chez ALE International

Noter la formation

Prix 2430€ HT / personne
Durée 4 jours (28 heures)

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe
Aide au Financement 4000€ de Bonus Atlas en CPF

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp