Chapitre 11 : Les interfaces graphiques 261 © Mohamed N. Lokbani v1.01 Programm

Chapitre 11 : Les interfaces graphiques 261 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ Chapitre 11 Les interfaces graphiques (wxWidgets) Chapitre 11 : Les interfaces graphiques 262 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ 1. Définition de l’interface graphique - Une interface graphique est un ensemble de programmes permettant d'utiliser un système donné de manière plus souple et intuitive que les lignes de commande qui sont parfois difficiles à comprendre. - Avec la rapidité croissante de l’internet, de plus en plus des personnes ou des sociétés aimeraient offrir des services ou contrôler divers équipements à partir du réseau. - L’interface graphique côté utilisateur devra donc fonctionner indépendamment du matériel, et doit agir comme un simple client recevant et envoyant des données critiques (nécessitant des mesures de sécurité appropriées) ou des données non critiques. Chapitre 11 : Les interfaces graphiques 263 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ Quand vous voyez ceci En réalité vous avez codé ceci - Il existe donc des composants graphiques qui en contiennent d'autres (et gèrent leur apparition, leur positionnement, ...) et d'autres qui n'en contiennent pas tels les boutons poussoirs, les fenêtres textes de saisie, ... Ces derniers sont parfois appelés les contrôles. Chapitre 11 : Les interfaces graphiques 264 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ 2. Boîtes à outils et Langages de programmation - Java • Développé par la compagnie SUN en 1995. • Indépendant de la plateforme. • AWT est le paquetage de base pour construire et manipuler des interfaces graphiques. Il est parmi les paquetages originaux de Java. • Swing est le nouveau paquetage. Ses composantes sont écrites, manipulées et affichées complètement en Java ("pur" java). • Java est dans sa version 6. - Microsoft • Avant 2001, il y avait deux possibilités : Visual Basic ou bien Visual C/C++ (MFC). o Visual Basic : pour des applications simples, pas complexes de tous les jours. o Visual C/C++ (MFC : Microsoft Foundation Classes) : pour les interfaces plus complexes nécessitant une forte interaction avec le gestionnaire de fenêtre à la Windows etc. • L’interface de développement était « Visual Studio 6 ». Chapitre 11 : Les interfaces graphiques 265 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ • .NET (depuis 2000) o Sa naissance Juillet 2000, et c’est le premier « framework » dont la version 1.0 a été rendue publique le 15 janvier 2002. o L’aspect le plus intéressant de « .NET » se situe au niveau de la plateforme de développement et des langages qu’il met en avant. o Il a permis d’unifier l’environnement de développement. o Avant son arrivée, le choix d’un outil ou d’une technologie de développement de Microsoft était une tâche assez ardue! L’explication est que les solutions étaient vastes et pouvaient impliquer un des gadgets Visual Basic 6.0, que C++, VBScript, MFC, DCOM, ATL etc. o Par ailleurs, Microsoft perdait du terrain devant la concurrence de SUN et son langage Java. o Il fallait une solution intégrée, ouverte vers le web. o L’objectif est donc le développement de manière simple d’applications web inter portables d’où l’arrivée de « .NET ». o La version actuelle du « framework » est la 3.0, alors que celle de l’interface de développement est « Visual Studio 2005 ». Chapitre 11 : Les interfaces graphiques 266 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ - C/C++ : Qt : développée par « Trolltech ». Langage : C++. Disponible sous licence GPL ou commerciale. Disponible sous GPL depuis peu à la communauté Windows. Exemple : KDE, gestionnaire de fenêtre sous Linux. Navigateur Opera. wxWidgets : développée par la communauté « Open Source ». Langage : C++. L’ancien nom « wxWindows ». Disponible sous licence LGPL. Disponible depuis plus d’une dizaine d’années. Exemple : AOL Communicator. GTK+/GTKMM : développée par la communauté « Open Source ». Langage : C (gtkmm C++) Elle a vu le jour à cause des contraintes de licences associées à l’utilisation de Qt. Version Windows chaotique ! Il faut être sacrément très patient ! Exemple : Gnome, gestionnaire de fenêtre sous Linux. Gimp (images). • Pour la suite de ce cours, nous allons décrire la bibliothèque « wxWidgets ». Chapitre 11 : Les interfaces graphiques 267 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ 3. Boîte à outils « wxWidgets » 3.1. Généralités - « wxWidgets » est un logiciel libre qui est composé d’un ensemble d’outils, regroupés dans une bibliothèque et conçus pour fonctionner les uns avec les autres de façon complémentaire. - « wxWidgets » est sous License LGPL (Library General Public Licence). Ceci facilite la redistribution des binaires. - « wxWidgets » a l’avantage de fonctionner avec la plupart des compilateurs. - « wxWidgets » donne à l’interface graphique l’apparence du système d’exploitation sur laquelle elle a été développée. Ceci permet d’éviter le dépaysement. - « wxWidgets » est disponible sur une multitude de plateformes Windows, Linux, Unix, MacOS, Palm etc. - Cette boîte à outils a vu le jour en 1992 suite au travail de « Julian Smart », un chercheur de l’université d’Edinburgh. - Julian Smart a développé la librairie pour réaliser des interfaces graphiques sous Windows (w) et Sun (x) et ceci, dans un environnement fenêtré (Windows Manager) d’où le nom de départ « wxWindows ». - Au départ, cette librairie visait une compatibilité avec MFC 1.0 (Windows) et XView (Sun). Chapitre 11 : Les interfaces graphiques 268 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ - Des modifications ont été apportées à la librairie pour supporter un mode natif win32. Elle a laissé tomber XView au profit de Xt et Motif. - Par la suite, la librairie « wxWidgets » a été complètement repensée pour la rendre claire, efficace et portable à d’autres systèmes. Ainsi, en 1997 la version 2 de l’API a vu le jour. - Depuis des classes non graphiques ont été ajoutées pour supporter diverses opérations comme la programmation réseau, le multitâche, etc. - En 2004, à la demande Microsoft, « wxWindows » a été renommée « wxWidgets ». 3.2. Outils nécessaires pour utiliser « wxWidgets » - La librairie peut-être téléchargée à partir de cette adresse : http://www.wxwidgets.org/ - En réalité, vous n’allez télécharger que le code source de cette librairie. - Il faudra donc la compiler par un compilateur donné pour une plateforme donnée. Par la suite, il faudra l’installer pour qu’elle soit disponible durant le processus de compilation d’un programme à base de « wxWidgets ». - Toutes les informations relatives à une installation et une utilisation sous Windows sont regroupées dans des fichiers ou répertoires dont le nom comporte le tag « msw ». À voir par exemple le répertoire « CHEMIN_wxWidgets\docs\msw ». Chapitre 11 : Les interfaces graphiques 269 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ - Pour générer cette librairie, nous vous conseillons d’exécuter d’abord la commande « configure » avant celle de « make ». En effet, la commande « configure » permet d’ajuster les paramètres du « makefile » utilisé avec la commande « make » pour tenir compte de votre environnement de travail. - Si l’installation vous semble trop compliquée, vous pouvez télécharger la version « wx- devcpp » disponible à partir de cette adresse : http://wxdsgn.sourceforge.net - Cette version intègre de manière transparente « wxWidgets » à l’outil de développement « devcpp », - Attention : il est recommandé de désinstaller les versions antérieures de « devcpp » avant d’installer « wx-devcpp ». 3.3. Quelques Tutoriaux - Il y a deux manières de décrire l’utilisation de « wxWidgets » : - Soit utiliser l’interface de développement associée pour réaliser des interfaces graphiques : • Voir ce lien pour une série de tutoriaux : http://wxdsgn.sourceforge.net/tutorials/index.php - Soit coder « manuellement » ces interfaces graphiques. Voir pour cela le tutorial de « David BEECH » : • (En-HTML) : http://www.bzzt.net/~wxwidgets/icpp_wx1.html • (En-PDF) : http://www.bzzt.net/~wxwidgets/icpp_wx.pdf Chapitre 11 : Les interfaces graphiques 270 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ • (EN-ZIP) : http://www.bzzt.net/~wxwidgets/wxtute.zip • (Fr-Traduction) : http://phenix.developpez.com/Tutoriel_wxWindows/Tutoriel%20WxWindows_1.htm - Pour ce cours, nous allons suivre l’approche « manuelle » et nous allons de temps à autre développer les exemples du tutorial de « David BEECH ». 3.4. Livres de référence Cross-Platform GUI Programming with wxWidgets Stefan Csomor, Kevin Hock, Julian Smart. Prentice Hall. - Une copie électronique est disponible à partir de cette adresse : http://www.phptr.com/content/images/0131473816/downloads/0131473816_book.pdf Chapitre 11 : Les interfaces graphiques 271 © Mohamed N. Lokbani v1.01 Programmation avancée en C++ 4. Développement d’une interface graphique à l’aide de « wxWidgets » Une interface graphique avec « wxWidgets » consiste en : - Une application objet ; chaque application « wxWidgets » doit dériver de la classe « wxApp ». - Un objet cadre « frame » ; c’est la fenêtre principale. Elle contient une bordure et un titre. Un cadre peut avoir des objets comme une barre de menu, une barre d'état, une barre d’outils, une icône, etc. Il ne faudra pas confondre cette uploads/Litterature/ chapitre-11-1-definition-de-l-x27-interface-graphique 1 .pdf

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