Objectifs pédagogiques
- Identifier les fonctionnalités avancées et complexes de la librairie C++ Qt5.
Modalités et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour les cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatique...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Niveau requis
Avoir une bonne connaissance de C++ et avoir développé des premières applications en Qt5.
Public concerné
Développeurs informatiques.
Programme
Bases de données
- Bases de données compatibles Qt
- Intérêt
- Notions de langage SQL
- QSqlDatabase
- SqlQuery
- Facilités QSqlQuery
Modèle Vue Contrôleur (MVC)
- Modèle MVC QSqlModel
- Récupération des informations du modèle
- Les Views
- QSortFilterProxyModel
- Les éléments équivalents
Plus loin avec le MVC
- Quelques points à savoir sur le Modèle Vue Contrôleur
- Construire son propre modèle
- Le paramètre "Role"
- Les "delegates"
XML et CSS
Présentation XML
- Exemple XML
- Définitions
- DOM et SAX
- Création de deux livres
DOM et SAX
- Modèle DOM : écriture
- QDomDocument : lecture
- Méthodes SAX
- Lectures simples
- Fichier XML minimal
CSS
- Feuilles de style et exemples
- QResources
- Utilisation et création d'une ressource
Graphisme
Méthode QPainter
- Présentation QPainter
- Les directives graphiques de QPainter
- Crayon (QPen)
- Pinceau (QBrush)
- Police (QFont) et Coordonnées
- Opération de transformation
Les images
- Généralités
- Les classes images
- Conversions d'un type à l'autre
- Lectures / écritures aux formats image
- Exemple de création de fichiers image
Rendu sur scène graphique
- Présentation
- QGraphicsProxyWidget
- Utilisation à partir d'un QGraphicsView
- Coordonnées sur une scène
Divers
Drag and Drop (Glisser - Déposer)
- Présentation
- Rendre un objet compatible au Glisser - Déposer
- Acceptation des Drops de la part d'une View
QTreeWidget
- La gestion des QTreeWidget / QTreeView
- Sauvegarde / Restauration
- Restauration d'un arbre
QTextCursor
- Sélectionner du texte avec QTextCursor
Processus
QProcess
Slots et signaux
- En pratique
- Raccourcis Designer
- Méthode connectSlotsByName
- Signaux avec arguments
- Cas de "disconnect"
- Déclaration de signaux
- Emission d'un signal
DBus
- QDBus
- Découverte de DBus
- DBus : mise en oeuvre
- Démarrage du service DBus dans le main.cpp
- DBus Service CPP
- Communication entre applications avec DBus
QNetwork
Mode Client
- QNetworkAccessManager
- Exemple de traitement d'un fichier reçu
- Suivre les liens
- QTcpServer
Installateur
Installateur sous Debian
- Philosophie de licence Debian
- Règles de nommage des paquets
- Ordre des numéros de version
- Astuce
- Format d'un fichier ".deb"
- Principe
Debian (suite)
- PGP : principe et installation
- Fichiers présents après dpkg-buildpackage
- Fichiers de génération du répertoire Debian
Autres installations
- Conversion d'un installateur Debian vers les autres systèmes Linux
- Fabrication d'un installateur sous Mac OS X
Divers
Compilation Qt
- Téléchargement des sources Qt
- Configurer la compilation
- Autres options de configuration
- QTextCursor
QML
- Caractéristiques
- Exemple de code
- Inclusion de JavaScript
- Créer un projet QML
- Les fichiers du projet QML
Les plug-ins
Présentation des plug-ins
- Définition des plug-ins
- Les types de plug-ins en Qt
Haut niveau
- Les plug-ins de haut niveau
- Les classes de plug-ins de base
- Etude d'un cas pratique
- Travail à fournir
- Implémentation fonction virtuelle
Bas niveau
- Les plug-ins de bas niveau
- Rendre une application compatible avec un plug-in
- Diverses considérations sur les plug-ins
- Chargement du plug-in par l'application
- Déclaration du plug-in
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation