Programmation événementielle 1 : Introduction à Qt
Il ne reste qu'une chose à faire pour combler tous ces désirs : la programmation événementielle ! Tout d'abord, mais qu'est-ce que la programmation événementielle ?
Evolution de la programmation procédurale que l'on utilise pour les applications en mode console, la programmation événementielle nous est utile pour faire des applications avec des interfaces graphiques.
- Ça va me permettre de faire des jolies fenêtres avec le joli thème Luna sous Windows ?
- T'as des goûts de chiottes mais t'as compris le principe.
Nous aurons donc différents composants graphiques disposés dans une ou plusieurs fenêtres et nous répondrons aux événements de l'utilisateur comme clics ou entrées au clavier. D'où le nom de programmation événementielle également appelée programmation Windows.
De quoi avons-nous besoin ?
- D'un langage de prog, on s'en serait douté : j'ai choisi pour vous C++
- D'un IDE (Integrated Development Environment) : c'est un programme regroupant la plupart des outils nécessaires au développement d'une application. Au minimum il doit contenir un éditeur de texte et un compilateur mais il peut très bien avoir des modules en plus tel qu'un débugger. Ce sera Devcpp.
- D'un compilateur : MinGW.
- D'un toolkit : pas besoin de chercher trop loin, la traduction correspond bien à ce que c'est. C'est une boite à outils, dans le sens informatique on pourrait dire une bibliothèque de fonctions servant, dans notre cas, au développement d'interfaces graphiques. On peut citer AWT (Abstract Window Toolkit) servant à faire des interfaces graphiques en Java, mais pour ne pas trop se casser la tête on utilisera Qt.
- Et finalement, le point qui va me faire perdre 98% de mes lecteurs, des connaissances de bases en C++ et en programmation orientée objet.
Pourquoi Devcpp alors que c'est quand même pas top, non ?
Je suis d'accord, CodeBlocks est nettement mieux mais, la dernière fois que j'ai regardé, son support de Qt était, pour être poli, expérimental. On devra donc se contenter d'un Devcpp lent, plantant et pas top mais qui conviendra quand même très bien pour ce que nous allons faire. En plus ça va m'offrir la possibilité d'un nouvel article si un jour j'arrive à faire cohabiter CodeBlocks et Qt.
Ouais mais Qt finalement, c'est quoi ?
Pour faire simple c'est un ensemble de bibliothèque C++ contenant tout ce qui va nous être nécessaire pour développer des interfaces graphiques. Si la motivation reste avec moi et que je continue ce qui devrait être une série d'articles, on pourra voir qu'en fait on peut faire beaucoup plus mais on ne va pas se brouiller la tête avec ça maintenant.
Pourquoi Qt ?
Principalement parce que je connais pas trop mal, et en plus il ne manque pas d'arguments :
- gratuit
- open source
- excellente documentation
- multiplateforme
- et, plus subjectif, très bien fichu
Téléchargeons donc tout ce bordel !
Devcpp, Qt et, puisque je suis très gentil, des petits fichiers que j'ai eu au péril de ma vie pour simplifier la votre.
Et le compilateur on me demandera ? Il va se télécharger pendant l'installation de Qt, magique.
La partie chiante : l'installation
Installation de Devcpp
Là je vais vous faire confiance pour l'installer et si vous doutez vraiment, l'installation par défaut est parfaite. On n'oubliera pas de décompresser le fichier utils.rar comme suit :
- qtmakefile.bat dans Dev-cpp/bin
- qtnewdev.exe dans le dossier de Devcpp
Installation de Qt
On va gentiment suivre l'assistant jusqu'à arriver au moment où il nous propose de télécharger et installer MinGW :
Et c'est là qu'il ne faut pas faire la même erreur que moi. Il faut installer MinGW dans le répertoire de Devcpp pour que tout le monde soit heureux. On continue l'installation en lui laissant créer les variables d'environnement pour ne pas avoir à le faire à la main :
L'installation terminée, il nous reste à construire les bibliothèques de débuggage de Qt. Le nom fait peur hein ?
Plus de peur que de mal, l'ami Qt fait tout pour nous :
Cette étape peut facilement durer de 15 à 20 minutes. Une fois terminée :
On ferme la commande Dos, l'installation est faite et on peut passer à la configuration.
La configuration
Première étape : ajouter une variable d'environnement. Pour cela, on ouvre les propriétés systèmes (clic droit -> propriétés sur le poste de travail ou le raccourci windows + break) -> avancé -> variables d'environnement. On localise la variable path, et on y ajoute à la fin le dossier Bin de Bevcpp en n'oubliant pas le point virgule pour le séparer du précédant chemin :
Dernière étape avant d'être fin prêt à programmer, l'ajout d'un outil pour générer le makefile.
Le makequoi ?
Pour faire très simple, c'est un fichier qui va être utilisé par l'IDE pour appeler les différents programmes (compiler, linker, meta object compiler,...) nécessaires à la création de notre exécutable. A chaque ajout d'un fichier source dans notre projet, on devra recréer un nouveau makefile.
Il est possible de configurer Devcpp pour qu'il s'en charge mais j'utilise personnellement une autre approche. Je crée un nouvel outil dans Devcpp et je l'utilise après l'ajout d'un nouveau fichier. C'est très simple à faire :
Dans Devcpp, menu tools -> configure tools -> add et on va remplir tous les champs comme indiqué :
J'explique un peu ce que l'on vient de faire. Le titre je pense que c'est assez clair, "Program" on lui indique le fichier .bat qui était dans utils.rar que je vous ai fait mettre dans le dossier bin de Devcpp, et enfin "working directory" on pourra le remplir avec la macro <PROJECTPATH> disponible en bas à gauche.
On ferme tout ça et on peut remarquer que Qt Makefile est apparu dans le menu Tools.
La configuration est enfin terminée !
Créons notre 1er projet !
Passons à un peu de pratique après toutes ces étapes ennuyeuses. Vous vous souvenez du fichier QtNewDev.exe que je vous ai fait mettre dans le dossier de Devcpp ? C'est le moment de le lancer.
Il va nous demander d'indiquer où l'on veut créer notre projet. Une fois que c'est fait, on va aller dans le dossier fraîchement créé et ouvrir le fichier .dev qu'il contient.
Devcpp se lance et on va lui demander très gentiment de lancer la compilation avec le bouton compile en haut à gauche.
- Mais... ça compile pas du tout bordel !
- Et le makefile hein ?
Donc on va faire notre makefile, Tools -> Qt Makefile, on compile et... ça fonctionne !
Une fois notre projet compilé, on le lance (run juste à côté de compile) et on regarde, l'oeil humide, notre 1ère fenêtre créée avec Qt.
Je sais qu'à ce niveau vous ne pouvez pas faire grand chose de plus que vous n'étiez capable il y a quelques minutes mais je vais m'arrêter là pour cette introduction. Un article va venir très prochainement, je vais le commencer de suite, pour attaquer en douceur les différentes possibilités que nous offre Qt.
Compléments de l'article
Devcpp, Qt
gnagnagna