Interfaces Graphiques avec matlab

Embed Size (px)

Text of Interfaces Graphiques avec matlab

Introduction la programmation des interfaces graphiquesAmliorer sa programmation sous MATLAB

par Jrme Briot (Dut sur developpez.com)Date de publication : 01/06/2007 Dernire mise jour : 17/03/2009

Cet article est une introduction au dveloppement des interfaces graphiques sous MATLAB. Contenu : l'article comporte : une description succincte des objets graphiques (hirarchie, identifiant, proprits) une prsentation de l'outil GUIDE pour le dveloppement des interfaces graphiques une valuation du GUIDE par rapport au codage classique " la main"

Public vis : cet article est destin aux dbutants ayant dj quelques notions de MATLAB et surtout aux utilisateurs avancs qui seront incits ne pas utiliser l'outil GUIDE pour dveloppez les interfaces graphiques. Votre avis et vos suggestions sur cet article m'intressent ! Alors aprs votre lecture, n'hsitez pas :

Introduction la programmation des interfaces graphiques par Jrme Briot (Dut sur developpez.com)

Avant-propos................................................................................................................................................................ 3 1 - Les objets graphiques et leur fonctionnement.......................................................................................................4 Les objets graphiques............................................................................................................................................ 4 Les identifiants des objets graphiques...................................................................................................................5 Les proprits des objets graphiques....................................................................................................................6 2 - Avec GUIDE ou bien en solo ?............................................................................................................................. 7 Prsentation............................................................................................................................................................ 7 Exemple partir d'un GUI simple..........................................................................................................................7 Conclusion..................................................................................................................................................................11 Pour rsumer........................................................................................................................................................ 11 Remarque............................................................................................................................................................. 11 Remerciements.......................................................................................................................................................... 12

-2Copyright 2007-2009 - Jrme Briot. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://briot-jerome.developpez.com/matlab/tutoriels/

Introduction la programmation des interfaces graphiques par Jrme Briot (Dut sur developpez.com)

Avant-proposLes IHM (Interfaces Homme Machine), sont appeles GUI (Graphical User Interfaces) dans MATLAB. Elles permettent l'utilisateur, grce des objets graphiques (boutons, menus, cases cocher, ...) d'interagir avec un programme informatique. Du fait du nombre important d'objets et surtout du nombre encore plus lev des paramtres associs, leur programmation " la main" droute gnralement le dbutant. Depuis la version 5.0 (1997), MATLAB possde un outil IDE ddi la cration des interfaces graphiques. Cet outil, appel GUIDE (Graphical User Interface Development Environment), permet de concevoir intuitivement ces interfaces graphiques.

-3Copyright 2007-2009 - Jrme Briot. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://briot-jerome.developpez.com/matlab/tutoriels/

Introduction la programmation des interfaces graphiques par Jrme Briot (Dut sur developpez.com)

1 - Les objets graphiques et leur fonctionnement Les objets graphiquesSous Matlab, les objets graphiques sont disposs selon une hirarchie pyramidale parent-enfant :

Au sommet de la hirarchie se trouve l'objet Root. Cet objet est invisible (on peut se le reprsenter comme tant l'cran de l'ordinateur). L'utilisateur n'interagit que trs rarement avec cet objet. Ensuite, on trouve les objets de type Figure. Ce sont les conteneurs visibles o sont disposs tous les autres objets enfants. Plusieurs objets Figure peuvent tre ouverts simultanment et peuvent ventuellement communiquer entre eux.

Viennent ensuite les objets de type Axes qui sont les zones de traage des graphiques (2D ou 3D). Ces objets ont pour enfants, tous les objets reprsentants des rsultats mathmatiques (courbes, surfaces, images, maillages, etc.). Un objet Figure peut contenir plusieurs objets Axes simultanment.

-4Copyright 2007-2009 - Jrme Briot. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://briot-jerome.developpez.com/matlab/tutoriels/

Introduction la programmation des interfaces graphiques par Jrme Briot (Dut sur developpez.com)

On trouve galement au mme niveau, les objets UI (User Interface) tels que des boutons, des menus, des cases cocher, ... Ces objets permettent l'utilisateur d'interagir dynamiquement la souris avec le GUI.

Les identifiants des objets graphiquesA la cration d'un objet, MATLAB lui attribue automatiquement un identifiant (handle), sous la forme d'un nombre rel unique qui peut tre stock dans une variable. Ceci permet de retrouver tout moment un objet graphique au cours du fonctionnement d'une interface. Cet identifiant existe tant que l'objet existe. Ds que l'objet est dtruit, cet identifiant disparat. Par exemple, la cration d'un objet Figure : Cration d'un objet et rcupration de son identifianth=figure h = 1

L'identifiant est ici un nombre entier (et non pas un rel). C'est un cas particulier, les objets Figure tant par dfaut identifis par des entiers. Le programmeur gre les identifiants, soit avec la fonction GUIHANDLES, soit avec les fonctions FINDOBJ/FINDALL. Quelques identifiants particuliers peuvent tre grs avec les fonctions suivantes :-5Copyright 2007-2009 - Jrme Briot. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://briot-jerome.developpez.com/matlab/tutoriels/

Introduction la programmation des interfaces graphiques par Jrme Briot (Dut sur developpez.com)

GCA qui rcupre l'identifiant de l'objet Axes courant GCBF qui rcupre l'identifiant de l'objet Figure o se trouve l'objet graphique dont l'action est en cours GCBO qui rcupre l'identifiant de l'objet graphique dont l'action est en cours GCF qui rcupre l'identifiant de l'objet Figure courant GCO qui rcupre l'identifiant de l'objet graphique courant

Les proprits des objets graphiquesChaque objet graphique possde des proprits (position, couleur, action, etc.) qui sont dfinies sa cration et qui peuvent tre modifies dynamiquement au cours du fonctionnement du GUI. Ces proprits peuvent tre rcupres et modifies en utilisant l'identifiant de l'objet et les fonctions GET et SET. La difficult consiste, bien entendu, apprendre et matriser ces nombreuses proprits : les proprits de l'objet Root les proprits de l'objet Figure les proprits de l'objet Axes les proprits des objets Uicontrol

-6Copyright 2007-2009 - Jrme Briot. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://briot-jerome.developpez.com/matlab/tutoriels/

Introduction la programmation des interfaces graphiques par Jrme Briot (Dut sur developpez.com)

2 - Avec GUIDE ou bien en solo ? PrsentationLe GUIDE est un outil graphique qui regroupe tout ce dont le programmeur besoin pour crer une interface graphique de faon intuitive.

Le placement des objets est ralis par slection dans la boite outils, mise en place et mise dimension la souris. Un double-clique sur chaque objet permet de faire apparatre un menu avec les proprits de cet objet. Leur modification et l'aperu de ces modifications sont immdiats. Au final, le code est gnr automatiquement et l'interface est enregistre sous deux fichiers portant le mme nom mais dont les deux extensions sont .fig et .m. Le premier contient la dfinition des objets graphiques. Le second contient les lignes de code qui assurent le fonctionnement de l'interface graphique. L'utilisation du GUIDE semble donc tre LA mthode de programmation des GUI sous MATLAB. Mais, comparons cette mthode la programmation des GUI " la main" l'aide d'un exemple simple.

Exemple partir d'un GUI simple But : comparer la programmation des GUI, l'aide du GUIDE et " la main".

On se propose de crer une interface graphiq