C++ et Qt
Historique de Qt
Évolution des versions jusqu'à Qt 5
Plateformes supportées
Qt Widgets vs QML
Gestion des licences
Premiers pas avec Qt
Présentation de l'IDE QtCreator et QtDesigner
Le modèle objet particulier de Qt
Rôle du pré-processeur MOC (Meta Object Compiler)
Classes principales : QMainWindow, QDialog, types, conversions…
Boîtes de messages
Principaux composants graphiques, menus et barres d'outils
Gestion du positionnement avec les layouts
Zones d'affichage et d'impression
Travaux Pratiques :
Création d'une IHM simple avec champs de texte, menus et boîtes de dialogues
Gestion d'évènements
Principe des signaux et slots
Rôle de la macro Q_OBJECT
Filtres d'évènements
Utilisation de QSignalMapper
Travaux Pratiques :
Ajout d'une gestion d'évènements à l'application déjà développée
Création de widgets personnalisés
Hériter de QWidget
Structure, évènements
Intégration de widgets dans QtDesigner
Travaux Pratiques :
Création d'un widget représentant un formulaire
QtQuick et QML
Présentation
Syntaxe du langage et principaux concepts
Différences clés avec les widgets
Présentation des principaux composants textuels et graphiques
Créer des composants réutilisables
Positionner ses éléments
Fonctionnement du property binding
Travaux Pratiques :
Création en QML d'une IHM simple avec champs de texte, menus et boîtes de dialogues
Autres API Qt
Collections: conteneurs et algorithmes
Manipulation de fichiers
Connexions aux bases de données
Mise en œuvre du multi-threading
Communication entre threads
Connexions réseau en TCP, HTTP, FTP
Manipulation de flux XML
Travaux Pratiques :
Ajout d'un accès base de données à l'application, ainsi qu'un mécanisme de log dans un fichier
Ajout d'un accès réseau pour transmettre les données de l'application à un serveur distant
Notions avancées
Mise en œuvre du Drag & Drop
Personnalisation du Look & Feel
Gestion des graphismes 2D et 3D
Internationalisation
Création de plugins
Scripting avec JavaScript
Travaux Pratiques :
Mise en œuvre de l'internationalisation de l'application