Créer des interfaces graphiques en C++ avec gtkmm Introduction Vous ne connaiss

Créer des interfaces graphiques en C++ avec gtkmm Introduction Vous ne connaissez pas du tout gtkmm ? Vous ne savez même pas ce qu'est un widget ? Pas de problème, car c'est ici que ça commence ! Dans ce chapitre, vous découvrirez GTK+ et gtkmm, vous apprendrez ce que sont les widgets et, par-dessus tout, vous compilerez votre première application utilisant gtkmm ! Qu'est-ce que GTK+ ? gtkmm ? Présentation de GTK+ Présentation générale GTK+ est un ensemble de bibliothèques permettant de créer des interfaces graphiques, donc des applications fenêtrées, en C. Au début, GTK+ avait été créé pour le logiciel GIMP, d'où son nom d'ailleurs . GTK+ est libre, ce qui vous permet de créer des logiciels propriétaires sans contrainte. De plus, GTK+ est portable ; il fonctionne sur la plupart des systèmes d'exploitation : GNU/Linux, Mac OS X et Windows. Présentation technique GTK+ utilise la programmation orientée objet même si elle est programmée en C. Elle est utilisable dans de nombreux autres langages tels C++, PHP, Java et Python pour ne citer que ceux-ci. Pour vous convaincre d'utiliser cette bibliothèque, sachez que GTK+ est utilisée par de nombreux projets de qualité comme GIMP (bien sûr ) et le fameux gestionnaire de bureau GNOME. Étant donné que ces projets sérieux utilisent GTK+ et qu'elle existe depuis plus d'une décennie, vous pouvez être sûr que cette bibliothèque est de qualité. Possibilités de GTK+ Cette bibliothèque vous permettra de créer des fenêtres avec des boutons, des images, des menus, des barres d'outils, des barres d'état, des zones de texte, etc. Elle gère également les événements, les threads et bien d'autres choses que nous verrons plus tard. Les différentes bibliothèques de GTK+ GTK+ est basée sur plusieurs bibliothèques : • GLib : la base de GTK+ (boucle d'événements, threads, système orienté objet, etc.) ; • Pango : pour le texte (mise en forme, internationalisation) ; • Cairo : pour le dessin 2D ; • Glade : pour la création d'interfaces graphiques avec un logiciel ; • ATK : pour l'accessibilité (lecteurs d'écran, loupes, ...) ; • et quelques autres. Il est certain que je vais vous parler des 4 premières. Cependant, n'ayant jamais utilisé ATK, je ne pourrai pas vous en parler. ATTENTION ! Bien qu'il existe un logiciel pour créer ses propres fenêtres, il est préférable de savoir en créer en C+ + avant. Présentation de gtkmm Gtkmm est une surcouche de GTK+ pour le langage C++. Elle permet de créer des interfaces graphiques en utilisant les mécanismes du C++ plutôt que ceux du C. Elle utilise, bien sûr, la programmation orientée objet (héritage, polymorphisme, etc.). Il existe également les surcouches des autres bibliothèques présentées plus haut : • glibmm ; • libglademm ; • etc. Pourquoi utiliser gtkmm à la place de GTK+ ? Premièrement, cela vous permet de programmer en C++ avec la programmation orientée objet. Autre point important : le compilateur C++ détectera des erreurs non détectées en C. De plus, vous pouvez utiliser l'héritage pour créer de nouveaux widgets (nous verrons dans la prochaine sous-partie ce que c'est) à partir de ceux existants. Enfin, le code à écrire en C++ est plus court qu'en C. Pourquoi utiliser gtkmm à la place de Qt (la bibliothèque graphique expliquée dans le cours de M@teo21) ? Gtkmm est écrit dans un style plus proche du C++ que Qt. Par exemple, Qt utilise la classe QVectorau lieustd::vector, classe présente dans la bibliothèque standard. Donc, si vous connaissez cette dernière, inutile d'en réapprendre une nouvelle. De plus, gtkmm ne modifie pas le langage C++ comme le fait Qt avec ses signaux et ses slots. Finalement, vous pouvez avoir une bonne intégration avec le bureau GNOME. À quoi ressemble un programme utilisant gtkmm ? Je vais vous montrer un programme qui affiche une fenêtre à l'écran : #include <gtkmm.h> int main(int argc, char* argv[]) { Gtk::Main app(argc, argv); Gtk::Window fenetre; Gtk::Main::run(fenetre); return 0; } Court, n'est-ce pas ? Je vous ai montré ce code pour vous montrer à quoi ressemble gtkmm. Ne vous en faites pas si vous n'y comprenez rien (c'est tout à fait normal ) ; je vais vous expliquer tout cela lors du prochain chapitre. Les widgets Que sont les widgets ? Un widget est un composant dans une interface graphique. Sans widget, il n'y aurait rien dans les fenêtres de vos applications... il n'y aurait même pas de fenêtre... Il y a des widgets avec lesquels l'utilisateur peut interagir comme les boutons et les zones de texte. D'autres widgets servent à afficher des informations ou à arranger des widgets selon un ordre précis. Widgets fournis par gtkmm Il y a une pléthore de widgets utilisable avec gtkmm. Eh oui, tant que ça . Je vais vous présenter les principaux. Le bouton Je pense que vous savez ce que c'est, je me trompe ? Voici tout de même une image d'un bouton : La case à cocher Une case à cocher est un bouton à deux états : activé (coché) et désactivé (décoché) : Cette case est cochée. La fenêtre Je pense que vous savez très bien ce que c'est : Les fenêtres que vous programmerez prendront l'apparence du système. Le menu Un menu est un widget présentant plusieurs éléments que l'utilisateur peut choisir : La barre d'outils La barre d'outils sert à rendre plus accessibles certains des éléments les plus utilisés du menu : La barre d'état La barre d'état affiche des informations que nous savons déjà : Les zones de texte uniligne et multiligne Les zones de texte permettent à l'utilisateur d'entrer du texte. Voici une zone de texte uniligne : Et voici une zone de texte multiligne : La barre de progression La barre de progression indique à l'utilisateur l'avancement d'une opération plus ou moins longue : La barre d'onglets La barre d'onglets permet d'afficher un seul widget à la fois, dans une fenêtre ayant une barre d'onglets : L'étiquette Une étiquette affiche simplement du texte pour dire, par exemple, ce qu'il faut écrire dans une zone de texte. Elle sert donc à donner des informations utiles à l'utilisateur. En voici une : Cela fait le tour de tous les widgets quelques widgets de gtkmm. Je vous ai montré cela pour que vous sachiez à quoi vous attendre. Passons dès maintenant à l'installation de gtkmm ! Installation de gtkmm Sous Linux... Je vais détailler l'installation sous Ubuntu ; pour les autres distributions, ce devrait être semblable. Pour ceux qui veulent installer gtkmm depuis les sources, cliquez ici. Donc, sous Ubuntu, si vous n'avez pas de compilateur C++ (ça ne devrait pas être le cas), lancez la commande suivante : sudo apt-get install g++ Ceci installera le compilateur g++. Ensuite, vous devez installer gtkmm avec la commande : sudo apt-get install libgtkmm-3.0-dev L'installation prend quelques minutes. Ce devrait être bon. Rendez-vous à la prochaine sous-partie pour la compilation de votre premier programme. Sous Windows... Gtkmm 3 (dernière version de gtkmm expliquée dans ce cours) n’est toujours pas sortie sous Windows. Par conséquent, il se peut que certains codes ne compilent pas chez vous. Il vous faudra donc patienter en attendant sa sortie. Téléchargement Veuillez télécharger gtkmm depuis le site officiel de GNOME. Cliquez ici, puis choisissez la dernière version (2.22 à l'heure où j'écris ces lignes) et téléchargez le fichier gtkmm-win32-devel-x.y.z.exe. Installation Double-cliquez sur le fichier téléchargé et installez le programme. Pour ce faire, choisissez la langue et vous devriez arriver sur une fenêtre semblable à celle-ci : Ensuite, cliquez sur Suivant, J'accepte, Suivant et vous devriez arriver sur une fenêtre vous demandant dans quel dossier doit se trouver gtkmm. Vous pouvez garder celui par défaut ou le modifier à votre guise. Cliquez sur Suivant et vous devriez arriver sur une fenêtre ayant plusieurs cases à cocher : Sauf si vous savez ce que vous faites, gardez toutes les cases cochées. Cliquez sur Suivant et enfin sur Installer. L'installation devrait durer quelques minutes : À la fin de l'installation, cliquez sur Fermer : Voilà, tout est installé, rendez-vous à la prochaine sous-partie pour tester votre installation toute fraîche, toute belle. Compiler votre première application ! Le premier programme que vous allez compiler affichera une fenêtre de 200px par 200px. Super ! Commençons tout de suite. Veuillez copier-coller le code source suivant (il sera détaillé au prochain chapitre) : #include <gtkmm.h> int main(int argc, char* argv[]) { Gtk::Main app(argc, argv); Gtk::Window fenetre; Gtk::Main::run(fenetre); return 0; } Sous Linux… Sous linux, j'utilise la ligne de commande ; si ce n'est pas votre cas, vous devrez configurer votre EDI. Si vous utilisez Code::Blocks, allez voir la compilation sous Window et suivez ces instructions, car elles devraient être semblables. Rendez-vous au répertoire de votre fichier .cpp : cd vers/dossier/de/mon/projet Ensuite, il vous suffit d'entrer la commande suivante pour compiler votre projet (si votre fichier ne s'appelle pas main.cpp, veuillez adapter la commande en conséquence, je vous fait confiance ) : g++ main.cpp -o Fenetre `pkg-config gtkmm-3.0 --cflags --libs` ATTENTION ! Il faut utiliser les accents graves (`) et non de simples apostrophes uploads/s3/ creer-des-interfaces-graphiques-en-c-avec-gtkmm.pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager