La certification Qt Essentials Curriculum Block

Jonathan Courtois

Voici l'ensemble des points à maîtriser afin de passer sans problème la nouvelle certification Qt. Au fil du temps, cette page sera complétée avec des liens pour approfondir chacun des points.
Commentez

- Titre : La certification Qt Essentials Curriculum Block

- Auteur : Jonathan Courtois

- Parution : 11 octobre 2009

- Mise à jour : 20 octobre 2010

- Licence : Copyright ® 2009 - 2010 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Les fondamentaux

- I-A. Sujets couverts

- I-B. Objectifs

- I-B-1. Interface utilisateur et bibliothèques multiplateformes

- I-B-2. Premières étapes de développement

- I-B-3. Modification et création

- I-B-4. Signaux et slots

- I-B-5. Aperçu des modules et des classes

- II. Développement d'une application

- II-A. Sujets couverts

- II-B. Objectifs

- II-B-1. Manipulation d'événements

- II-B-2. Dessin de base

- II-B-3. Fenêtre principale et actions

- II-B-4. Entrée/sortie générique, fichiers et impression

- III. Utilisation des boîtes de dialogue et manipulation des dispositions de l'interface graphique

- III-A. Sujets couverts

- III-B. Objectifs

- III-B-1. Gestion de la géométrie

- III-B-2. Boîtes de dialogue standards

- III-B-3. Créer vos propres boîtes de dialogue (personnalisées)

- III-B-4. Qt Designer

- IV. Chaînes de caractères, ressources et aide

- IV-A. Sujets couverts

- IV-B. Objectifs

- IV-B-1. Chaînes de caractères, URL et expressions régulières

- IV-B-2. Validation des saisies

- IV-B-3. Ressources

- IV-B-4. Système d'aide

- V. Utilisation avancée des événements Qt

- V-A. Sujets couverts

- V-B. Objectifs

- V-B-1. Événements synthétiques

- V-B-2. Invocation différée

- V-B-3. Filtres d'évènements

- VI. Classes outil pour les développeurs et API

- VI-A. Sujets couverts

- VI-B. Objectifs

- VI-B-1. Classes conteneurs

- VI-B-2. Débogage

- VI-B-3. Quelques réflexions sur la portabilité

- VI-B-4. QSignalMapper

- VI-B-5. QTimer

- VI-B-6. Écrire vos propres widgets

I - Les fondamentaux

I-A - Sujets couverts

- Comparaison des frameworks multiplateformes.

- Création d'une application simple avec Qt.

- Étapes de développement de base, inclusion, modification, construction et utilisation de Qt dans des EDI.

- Connecter l'interface utilisateur à la logique métier d'une application.

- Un aperçu des modules Qt et de leurs fonctionnalités clés.

I-B - Objectifs

I-B-1 - Interface utilisateur et bibliothèques multiplateformes

- Apprendre la différence entre une API native et une API multiplateforme.

- Connaître la différence entre les boîtes à outils (toolkits) et les frameworks.

- Comprendre le raisonnement de la portabilité d'applications.

- Qt Quarterly : Réordonner les boutons

I-B-2 - Premières étapes de développement

- Apprendre comment écrire une application Qt simple.

- Comprendre les fondements de QObject.

- Comprendre la nécessité d'un gestionnaire de disposition.

- Être en mesure de trouver des réponses aux questions relatives à Qt.

- Apprendre à utiliser qmake.

- Où trouver la documentation de Qt ?

- QObject

- Débuter dans la création d'interfaces graphiques avec Qt 4.

- Boîtes de dialogue

- De QObject aux méta-objets, une plongée au cœur des fondations de Qt

- Compilation de projets avec Qt 4

- Documentation : le modèle objet de Qt

- Documentation : QObject

- Qt Labs : QMake et au-delà

- Partie I, chapitre 1 à 4 et partie II, chapitre 1 : Qt 4 et C++

I-B-3 - Modification et création

- Être capable de créer un projet Qt.

- Connaître les points clés concernant le processus de construction Qt et les outils utilisés.

- Apprendre à utiliser Qt avec un EDI.

- Être capable de compiler et d'exécuter un programme à partir d'un EDI.

- Être capable d'utiliser un designer à l'intérieur d'un EDI.

- Être capable de déboguer du code dans un EDI.

- Être capable de trouver de l'aide à travers un EDI.

- EDI (Environnement de développement intégré)

- Installer Qt 4 facilement

- Qt 4 et Dev-C++

- Qt 4.3.2 et inférieur et Visual Studio 2005

- Qt Quarterly : coup de projecteur sur Qt Creator, l'IDE multi-plateformes

- Les rubriques Visual Studio, Eclipse et NetBeans

- La FAQ Code::Blocks et Borland C++ Builder

- Les tutoriels Borland C++ Builder

I-B-4 - Signaux et slots

- Apprendre les avantages des signaux/slots.

- Comprendre le concept des signaux/slots.

- Apprendre comment connecter des signaux à des slots.

- Être capable d'utiliser et de définir ses propres signaux/slots.

- Signaux et slots

- Signaux et slots avec Qt 4

- Qt Quarterly : connecter plusieurs signaux à un seul

- Documentation : signals and slots

I-B-5 - Aperçu des modules et des classes

- Être capable de lister les modules majeurs de Qt.

- Comprendre le concept et la fonctionnalité d'un module Qt.

- Comprendre les API majeures fournies par les différents modules de Qt.

- Que contient Qt 4 ?

- L'utilisation des modules de Qt

- Documentation : tous les modules de Qt

- Les modules de Qt sur le wiki

II - Développement d'une application

II-A - Sujets couverts

- Le concept d'événements dans Qt et la différence avec les signaux/slots.

- Manipulation des événements basiques.

- Comment dessiner avec Qt.

- Utilisation de QMainWindow.

- Utilisation des Actions.

- Entrée/Sortie générique, accès aux fichiers.

- Encodage du texte.

- Comment afficher des images.

- Utilisation de QPrinter.

II-B - Objectifs

II-B-1 - Manipulation d'événements

- Comprendre le concept d'événements.

- Comprendre la différence entre les événements et les signaux/slots.

- Être capable d'implémenter la manipulation d'événements.

- Comprendre le rôle des événements dans le dessin.

- Comment manipuler les événements de Qt ?

- Documentation : évènements et filtres d'évènements

- Documentation : QEvent

- Partie II, chapitre 2 : Qt 4 et C++

II-B-2 - Dessin de base

- Apprendre à dessiner sur des widgets.

- Comprendre la différence entre QPixmap, QImage et QPicture.

- Être capable de charger une image à partir d'un fichier.

- QtGui

- Documentation : le module QtGui

- Documentation : the paint system

- Partie I, chapitre 5 et partie II, chapitre 3 : Qt 4 et C++

II-B-3 - Fenêtre principale et actions

- Comment utiliser QMainWindow.

- Savoir comment implémenter un menu.

- Être capable d'utiliser une barre d'outils et une barre de statut.

- Comprendre le concept des Actions.

- Savoir comment utiliser QVariant pour stocker des données dans des actions.

- Être capable de créer sa propre application.

- Comprendre l'utilisation des zones de défilement.

- Création d'une fenêtre personnalisée

- QSystemTrayIcon : ajoutez votre programme à la zone de notification avec Qt

- Documentation : the application main window

- Partie I, chapitre 2 et 3 : Qt 4 et C++

II-B-4 - Entrée/sortie générique, fichiers et impression

- Comprendre l'utilisation de QFile.

- Être capable d'identifier la différence entre QDataStream et QTextStream.

- Connaître les classes utilisables pour l'accès à des fichiers et des répertoires.

- Être capable de lire/d'écrire à partir de/ dans des fichiers en utilisant Qt.

- Comprendre la question de l'encodage du texte et des fichiers.

- Comprendre quand il est mieux d'utiliser QDataStream à la place de QTextStream.

- Être capable d'imprimer un widget ou un document texte au format PDF en utilisant QPrinter.

- Les fichiers et répertoires

- Qt Quarterly : écrire des documents ODF avec Qt

- Qt Quarterly : écrire un périphérique personnalisé d'E/S

- Documentation : input/output and networking

- Partie II, chapitre 7 : Qt 4 et C++

III - Utilisation des boîtes de dialogue et manipulation des dispositions de l'interface graphique

III-A - Sujets couverts

- Géométrie dans Qt.

- Widgets de haut niveau et boîtes de dialogue.

- Gestion de disposition.

- Création de boîtes de dialogue.

- Création de widgets personnalisés.

- Fonctionnalités standards des boîtes de dialogue.

- Utilisation de l'assistant (API).

- Utilisation des outils de Qt Designer.

III-B - Objectifs

III-B-1 - Gestion de la géométrie

- Apprendre à manipuler la géométrie d'un widget.

- Comprendre le concept derrière la gestion de disposition dans Qt.

- Connaître et comprendre les différents gestionnaires de disposition.

- Apprendre à utiliser les widgets avec la gestion de disposition.

- Être capable de développer votre propre boîte de dialogue avec une gestion de disposition.

- Création d'une fenêtre personnalisée

- Qt Quarterly : widgets translucides dans Qt

- Documentation : layout management

- Partie II, chapitre 1 et 5 : Qt 4 et C++

III-B-2 - Boîtes de dialogue standards

- Connaître les divers types de boîtes de dialogue standards.

- Comprendre l'utilisation des boîtes de dialogue standards.

- Être capable de les utiliser.

- Comprendre comment le traitement des événements fonctionne avec QProgressDialog.

- Comprendre la structure de l'assistant.

- Être capable de créer vos propres assistants avec des pages.

- Assistants

- Qt Quarterly : utiliser Qt Help comme une main courante

- Documentation : dialog windows

- Partie I, chapitre 2 : Qt 4 et C++

III-B-3 - Créer vos propres boîtes de dialogue (personnalisées)

- Apprendre à dériver une QDialog.

- Comprendre l'utilisation de boutons dans une boîte de dialogue.

- Être capable de lancer des boîtes de dialogue (non) modales.

- Connaître les options de suppression des boîtes de dialogue.

- Être capable de créer vos propres boîtes de dialogue avec des interactions utilisateurs.

- Comment réaliser des fenêtres modales et amodales ?

- Qt Quarterly : réordonner les boutons

- Documentation : QDialog

- Partie I, chapitre 2 : Qt 4 et C++

III-B-4 - Qt Designer

- Comprendre comment le designer peut aider à la création de widgets.

- Comprendre le concept des fichiers du designer.

- Être capable d'ajouter du code du designer dans votre code.

- Être capable de connecter des éléments du designer avec des fonctions métiers.

- Savoir comment manager les widgets personnalisés dans le designer.

- Être capable de charger des fichiers du designer.

- Être capable de créer une boîte de dialogue en utilisant les outils du designer.

- Documentation : a quick start to Qt Designer

- Documentation : Qt Designer manual

- Chapitre 3 : The Book of Qt 4

IV - Chaînes de caractères, ressources et aide

IV-A - Sujets couverts

- Manipulation de chaîne de caractères.

- Expressions régulières.

- Validation des saisies utilisateurs.

- Concept du système de ressources Qt.

- Chargement des ressources.

- Accéder aux éléments des ressources .

- Ajouter une fonctionnalité d'aide à des widgets.

- Aide dynamique.

- QTextBrowser comme un visionneur d'aide.

IV-B - Objectifs

IV-B-1 - Chaînes de caractères, URL et expressions régulières

- Apprendre à créer une chaîne de caractères avec QString.

- Savoir comment extraire des données de chaînes de caractères.

- Savoir comment tester des chaînes de caractères.

- Connaître les fonctions utiles de QString.

- Connaître les bases de la traduction avec Qt des chaînes de caractères dans d'autres langues.

- Comprendre QUrl et les composants d'une URL.

- Apprendre à utiliser QRegExp pour une expression régulière.

- QString

- Documentation : QString

IV-B-2 - Validation des saisies

- Être capable de définir un masque de saisie dans un champ texte.

- Comprendre les formats des masques de saisie.

- Savoir que QCompleter offre une fenêtre de complétion.

- Documentation : QValidator

IV-B-3 - Ressources

- Comprendre les avantages des fichiers de ressources par rapport aux fichiers ordinaires.

- Apprendre à ajouter des fichiers de ressources dans un projet.

- Connaître la structure XML des fichiers de ressources.

- Être capable d'accéder à des ressources dans une application.

- Savoir que les fichiers de ressources peuvent être localisés.

- Apprendre à charger un fichier de ressources dynamiquement.

- Ressources

- Documentation : le compilateur de ressources (rcc)

IV-B-4 - Système d'aide

- Connaître les différentes possibilités fournies par l'aide.

- Comprendre le concept du système des icônes de la barre d'état.

- Apprendre à intégrer une aide dynamique.

- Où trouver la documentation de Qt ?

- QSystemTrayIcon : ajoutez votre programme à la zone de notification avec Qt

- Qt Quarterly : Utiliser Qt Help comme une main courante

V - Utilisation avancée des événements Qt

V-A - Sujets couverts

- Affichage et envoi d'événements.

- Événements personnalisés.

- Invocation différée de méthode.

- Traitement des événements au repos.

- Filtres d'événements.

V-B - Objectifs

V-B-1 - Événements synthétiques

- Comprendre le concept de la propagation des événements.

- Apprendre à afficher/envoyer des événements.

- Être capable de créer/envoyer/manipuler des événements personnalisés.

- Comment manipuler les événements de Qt ?

- Documentation : évènements et filtres d'évènements

- Documentation : QEvent

- Partie II, chapitre 2 : Qt 4 et C++

V-B-2 - Invocation différée

- Comprendre le besoin de traitement au repos.

- Être capable d'implémenter l'invocation d'une méthode différée.

- Documentation : QMetaObject

V-B-3 - Filtres d'évènements

- Comprendre l'avantage de filtres d'événements.

- Être capable d'installer vos propres filtres d'événements sur des objets.

- Connaître la différence entre un objet et l'application de filtre d'événements.

- Comment manipuler les événements de Qt ?

- Documentation : évènements et filtres d'évènements

VI - Classes outil pour les développeurs et API

VI-A - Sujets couverts

- Types de conteneurs.

- Itérateur de conteneur.

- Mot clé foreach.

- Classe partagée implicitement.

- Messages de débogage.

- Technique de débogage.

- Réflexions sur la portabilité.

- Pièges en portabilité.

- Signal mapper.

- Timers.

- Widgets personnalisés.

VI-B - Objectifs

VI-B-1 - Classes conteneurs

- Comprendre le concept de conteneurs.

- Connaître la différence entre Java et STL style API.

- Connaître les différents types de conteneurs.

- Être capable d'identifier le meilleur conteneur pour l'utilisation voulue.

- Connaître les exigences d'un type de données afin d'être stockées dans un conteneur.

- Être capable d'itérer des conteneurs.

- Connaître les différents itérateurs standards et mutables.

- Être capable d'utiliser le mot clé foreach dans un conteneur.

- Connaître les algorithmes utiles de conteneurs disponibles dans Qt.

- Comprendre le concept de classes implicites partagées.

- Documentation : generic containers

- Partie II, chapitre 6 : Qt 4 et C++

VI-B-2 - Débogage

- Être capable d'écrire des messages de débogage.

- Comprendre l'utilisation des assertions.

- Être capable d'utiliser GDB avec Qt.

- Comprendre pourquoi les filtres d'événements peuvent être utiles pour le débogage.

- Documentation : évènements et filtres d'évènements

- Documentation : QDebug

- Documentation : debugging techniques

VI-B-3 - Quelques réflexions sur la portabilité

- Comprendre les avantages d'une application portable.

- Connaître les concepts permettant de rendre vos applications plus portables.

- Connaître les limitations de la portabilité Qt.

- Comprendre comment réaliser un projet portable.

- Cross-compilation de Qt 4

- Cross-compilation de programme Qt4 de Linux vers Windows

- Qt Quarterly : déploiement d'applications sur Windows

- Qt Quarterly : déployer dans le Bazaar

- Documentation : cross platform development with Qt

VI-B-4 - QSignalMapper

- Comprendre le concept de signal mapper.

- Être capable d'utiliser QSignalMapper.

- Comment récupérer et utiliser l'objet déclencheur d'un slot avec QSignalMapper ?

- Documentation : QSignalMapper

VI-B-5 - QTimer

- Comprendre le concept du QTimer.

- Être capable d'utiliser QTimer.

- Comprendre les différents modes d'opération des timers.

- Comment utiliser un QTimer ?

- Documentation : QTimer

VI-B-6 - Écrire vos propres widgets

- Savoir quand il est mieux d'utiliser un widget personnalisé.

- Être capable de ré-implémenter les méthodes de manipulation d'événements.

- Comprendre quand utiliser les signaux.

- Être capable de décider quelles variables internes devraient être accessibles.

- Comprendre l'importance d'une construction propre.

- Comment dessiner dans un QWidget ?

- Comment manipuler les événements de Qt ?

- Signaux et slots

- Signaux et slots avec Qt 4

- Documentation : QWidget

- Documentation : évènements et filtres d'évènements