Développement Évènementiel et Objet sous Gnu-Linux avec QT BTS Informatique Option développeur d'application

Alix Mascret

Gilles Thomassin

Julien Legrand

Publié sous licence LGPL

2003-2005


Dédicace

Cet ouvrage est dédié aux quelques centaines d'étudiants, qui ont essayé d'apprendre en deux ans ce que j'ai mis 10 ans à construire et qui y sont parfois arrivé. Merci à tous.

Table des matières

Préface
Programmation événementielle en c++ avec QT
Présentation langage C++ et librairie QT
Les bibliothèques de composants visuels:
La librairie QT
Un peu de vocabulaire
Processus de développement
Rappels Fichiers séquentiels et C++
Introduction
Travail à réaliser
Base de travail: Le programme exemple
Introduction à la programmation orientée objet
Qu'est-ce que la programmation orientée objet ?
Les classes et les instances.
Sans la programmation orientée objet
Définition de la notion de classe.
Définition de la notion d'instance.
L'encapsulation des propriétés
Pourquoi faut-il protéger les propriétés
Comment protéger les propriétés
Programmation Client - Serveur
Programmation client serveur
Analyse théorie et algorithme
Mise en oeuvre
Installation et test de l'environnement Qt
Présentation
Vérifier la configuration de Qt
Installer Qt à partir des binaires
Télécharger et compiler Qt
Présentation du c++ et de QT
Présentation langage C++ et librairie QT
Les bibliothèques de composants visuels:
La librairie QT
Un peu de vocabulaire
Processus de développement
Créer une application avec QT
Créer une application QT
Démarrer et quitter Qt Designer
Créer un Nouveau Projet
Créer un Nouveau Formulaire
Ajouter des Composants
Mise en page des composants et aperçus
Aperçu
Modifier l'ordre de tabulation
Connecter les Signaux aux Slots
Connecter des signaux prédéfinis à des slots
Créer et connecter ses propres Slots
Compilation et construction de l'application
Programmation Objet en C++
Le langage C++
Classes et instances
Opérations d'entrée sortie
L'entrée standard
Compilation d'un fichier source c++
Application
Exercice
Techniques de programmation OO
Constructeur
Allocation dynamique des instances
Appel du constructeur lors de l'instanciation
Accès aux propriétés et méthodes de l'instance
Opérateur free
Encapsulation et niveaux de protection
L'accès aux données
Exercices
Implémentation des méthodes hors interface
POO Mise en oeuvre
Héritage
Exercice sur l'héritage
Evementiel suite étude des composants standards avec QT4
Retour sur l'événementiel, étude des widgets standards
Utilisation des QLabel et QLineEdit
Déclarations de variables locales
QT et encapsulation
TP - didacticiel pour l'addition
Indications générales
Travailler avec l'emmetteur du signal
Transformation chaînes vers entier
Composants supplémentaires: Listes et Grilles
Gestion de QListBox
Travail à réaliser
Et si nous n'avions pas bâclé l'analyse ...
Gestion de grilles
Faire bonne impression avec QT
Introduction
Exemple: impression des lignes d'un MultiLineEdit
Synthése des méthodes des différentes classes utilisées
Généralités
retour sur la Programmation Objet en C++
Le langage C++ perfectionnement
Présentation des listes chaînées
Listes chaînées doubles
Travaux pratique liste chaînée.
Les conteneurs de la S.T.L.
Postgresql, et C++
Développement C++ autour de Postgresql
Mise en place des éléments nécessaires
Configuration de Postgresql
Exemple de programme en C++ qui utilise la base
Compilation et édition de liens
Documentation de la classe PgDatabase
Problématique de la POO associée aux bases de données
Création d'applications de Bases de données
Création d'applications de Bases de données
Construire les connexions aux bases de données
Mettre en place la connexion pour Qt Designer
Paramétrage de Connexions pour les Applications
Utiliser le composant QDataTable
Visualisation rapide du contenu d'une table
Insérer des enregistrements dans un QDataTable
Utilisation de l'interface utilisateur du QDataTable
Créer une relation Maître-Détail entre deux Tables
Utilisation du QDataBrowser et du QDataView
Passer à un formulaire utilisant un QDataBrowser
Utilisation de l'interface du QDataBrowser
Le débogage des programmes
Introduction
Avant de commencer
A quoi ça sert le debogueur ?
Quelques définitions
Débogueur mode d'emploi
Compiler avec les informations de débogage
Lancer le débogueur
Déboguer
Les exercices
Directives pour la réalisation des exercices
Annexes au poly sur Qt
Utiliser QT Designer en Français
Installation de Qt Designer en Français
Jeu d'essai pour l'exercice sur le composant QListBox
Éléments de réalisation de quelques exercices
Exercice 1
Exercice 2
Exercice 3
Exercice 4

Liste des illustrations

1. Hello World
2. L'application Multiclip
3. Créer un Nouveau Projet
4. Créer un Nouveau Projet - Utiliser l'inspecteur d'objets
5. Inspecteur d'objet
6. Ajout de composants à un formulaire - Les éditeurs de Valeurs
7.
8. Sélectionner un groupe de composants
9. Groupes de composants mis en page
10. Mettre en page des groupes de Composants
11. Mettre en page les composants dans le formulaire
12. Ajouter un spacer vertical
13. Mise en page du formulaire
14. Explorateur d'objet
15. Aperçus de Multiclip
16. Définir l'ordre de tabulation
17. Connecter le signal clicked() au slot accept()
18. Connecter le signal clicked() au slot accept()
19. QLabel
20. designer
21. designer: choix du type de fenêtre
22. Création d'une fenêtre principale
23. Edition des propriétés de la fenêtre principale
24. Sauver le fichier de description de l'interface utilisateur
25. Ajout d'un label
26. propriétés du label
27. label aprés modification de sa propriété text
28. Formulaire aprés insertion d'un QLineEdit
29. layout horizontally
30. layout horizontale
31. Spacer et bouton dans une layout horizontale
32. Ajout de deux labels
33. Interface finie
34. Interface réellement finie
35. Connexion signal/slot
36. Lancement de l'application
37. QLineEdit
38. QListBox
39. L'application "Livre" - Le Schéma de l'exemple
40. Boîte de dialogue Connexion aux bases de données
41. Utilisation de l'éditeur de Table
42. Le formulaire d'édition des livres

Liste des exemples

1. Lancement du débogueur
2. placer un point d'arrêt à la ligne 10