43
LOG2420 Analyse et concepƟon d'interfaces Introduction Composants Rétroaction Organisation Disposition Configuration LOG2420 Analyse et concepƟon d interfaces utilisateur Boîtes à outils pour la construction d'interfaces l utilisateur Michel C. Desmarais, François Lemieux é f Génie inf ormatique École Polytechnique de Montréal Automne 2010 Automne, 2010 LOG2420 Analyse et conception d'interfaces utilisateur Boîtes à outils pour la construction d'interfaces utilisateur 1/43

LOG2420 on d'interfaces utilisateur Boîtes à outils pour

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

LOG2420 ― Analyse et concep on d'interfaces

Introduction Composants RétroactionOrganisation Disposition Configuration

LOG2420 Analyse et concep on d interfaces

utilisateur

Boîtes à outils pour la construction d'interfaces

lutilisateur

Michel C. Desmarais, François Lemieux

é fGénie informatiqueÉcole Polytechnique de Montréal

Automne 2010Automne, 2010

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 1/43

Page 2: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Boîtes à outils pour la construction d'interfaces utilisateur

Introduction Composants RétroactionOrganisation Disposition Configuration

utilisateur

1 Introduction1. Introduction

2. Composants

3. Organisation

4 Di i i4. Disposition

5. Configuration

6. Rétroaction

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 2/43

Page 3: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Les boîtes à outils Introduction Composants RétroactionOrganisation Disposition Configuration

Extension aux systèmes de fenêtrage de baseBibliothèque de composants dédiées à la construction d'interfacesConstruite comme une couche supplémentaire au‐dessus du

tè d f êt d bsystème de fenêtrage de basePrend en charge une grande partie de la gestion des événements

Pourquoi des boîtes à outils ?Pourquoi des boîtes à outils ?Pour travailler avec un langage de plus haut niveau qui accélère la conception et la faciliteParce qu’on retrouve souvent les mêmes éléments dans uneParce qu on retrouve souvent les mêmes éléments dans une interfacePour produire des interfaces plus normalisées

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 3/43

Page 4: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

ArchitectureIntroduction Composants RétroactionOrganisation Disposition Configuration

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 4/43

Page 5: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Architecture – Exemple: Windows X (X11)Introduction Composants RétroactionOrganisation Disposition Configuration

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 5/43

Page 6: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Les boîtes à outils Introduction Composants RétroactionOrganisation Disposition Configuration

Logiciel libreQtGTK+Java AWT et SwingJava AWT et SwingJava SWT (Eclipse ‐ IBM)

CommercialMFC (Microsoft Foundation Classes) : Windows 95/98/NT/.net, possibilité de Unix et MacMacApp, OpenStep (Cocoa) : Macpp p p ( )

Il en existe plusieurs dizaines (voir www.free‐soft.org/guitool )

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 6/43

Page 7: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Boîtes à outils pour la construction d'interfaces utilisateur

Introduction Composants RétroactionOrganisation Disposition Configuration

utilisateur

1 Introduction1. Introduction

2. Composants

3. Organisation

4 Di i i4. Disposition

5. Configuration

6. Rétroaction

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 7/43

Page 8: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Types de composantsIntroduction Composants RétroactionOrganisation Disposition Configuration

Les composants d'une boîte à outils sont appelés p ppGadgiciels ou Widgets (window gadget) ou contrôles (Apple, Microsoft) ou X Toolkit (Window X)Un Widget c'est :

Un objet, donc fonctions et données, interactif qui représente un élément courant d'interface utilisateur graphique commeun élément courant d interface utilisateur graphique comme par exemple: bouton poussoir, barre de défilement, menu…Une « brique » réutilisable et configurable servant à la construction de la partie interface d'une applicationconstruction de la partie interface d'une application

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 8/43

Page 9: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

BoutonIntroduction Composants RétroactionOrganisation Disposition Configuration

Bouton de commandeDéclenche une fonctionnalité immédiateDéclenche une fonctionnalité immédiatePeut être:

du texte, un ou deux mots, iou une image

ou les deuxDans une fenêtre,

l d déf é éOK est la commande par défaut et est activé par « Entrée »Annuler est activé avec « Échap »Il n’y y a pas de touche d’accès rapide pour ces deux composants

Bouton à basculeSignale l’état courantEst préféré à la case à cocher ou à la case à option par souci deEst préféré à la case à cocher ou à la case à option par souci de cohérence

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 9/43

Page 10: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Case à cocher et case à optionsIntroduction Composants RétroactionOrganisation Disposition Configuration

Case à cocherManipule une variable booléennePeut‐être une action, un état ou une propriétéPeut être utilisée dans un menuPeut indiquer un état pour une partie des éléments d’un groupe

Cases à options p(boutons radio)

Sont utilisées en groupeManipule une variableManipule une variable discrète ayant:

• Plus de deux états• Deux états distincts• Deux états distincts

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 10/43

Page 11: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Glissoir et barre de progressionIntroduction Composants RétroactionOrganisation Disposition Configuration

GlissoirManipule une variable pcontinue bornéePermet une rétroaction instantanéePréférer un champs numérique

si l’espace est manquant Si l’usage du clavier est plus appropriég p pp p

Barre de progressionAffiche la progression

E t d’ é ti l t d l dét i éEn pourcentage d’une opération lente de longueur déterminée

D’une opération de durée pindéterminée

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 11/43

Page 12: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Champ de texteIntroduction Composants RétroactionOrganisation Disposition Configuration

Boîte ou champ de textepermet de saisir ou de modifier des valeurs non‐contraintes

Du texteDes valeurs numériques

Peut proposer Un format de donnéesUn masque de saisie

Zone de texteZone de textePermet la saisie de textes sur plusieurs lignesp gN’offre pas de mise en forme

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 12/43

Page 13: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

ListesIntroduction Composants RétroactionOrganisation Disposition Configuration

Listes: permet l’affichagede plusieurs itemsde plusieurs itemsZone de liste

Tous les items sont visiblesbl bAccessibles avec barre

de défilementListe déroulante

L’item sélectionné est visibleLes autres sont accessibles paraccessibles par un bouton

Liste combinéeS t l li t dé l tSe comporte comme la liste déroulanteL’item visible est dans un champ éditable

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 13/43

Page 14: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Onglet, tableau et arbreIntroduction Composants RétroactionOrganisation Disposition Configuration

OngletPrésentation d’écrans ayant un lien entre euxSouvent utilisés pour des optionsPeut être placé au haut ou au bas de l’écran

TableauZone de liste sophistiquéeZone de liste sophistiquéeInformation organisée en lignes et colonnes et placée dans des cellulesPermet la manipulationPermet la manipulation d’éléments

SélectionÉditionCopieS iSuppressionTriEtc.

ArbreE bl hié hi d d é l d 3 iEnsemble hiérarchique de données e plus de 3 niveauxPour des utilisateurs avancésAvec éléments escamotables

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 14/43

Page 15: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Menu déroulantIntroduction Composants RétroactionOrganisation Disposition Configuration

Menu déroulantConceptuellement assez semblable au boutonConceptuellement assez semblable au bouton poussoirManipule une variable discrète ou déclenche une fonctionnalitéPlus commode pour offrir un grand nombre de choixN'occupe pas d'espace permanent

Permet de sauver de l'espace Plus fastidieux d'utilisation Oblige la mémorisation

Information souvent cachéeInformation souvent cachéeMenu contextuel

Offre les possibilités d’un menu dont les items sont disponibles pour un objet sélectionnésont disponibles pour un objet sélectionné

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 15/43

Page 16: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Barre d’outil et rubanIntroduction Composants RétroactionOrganisation Disposition Configuration

Barre d'outilsl‘é i l tl‘équivalent d'un menu mais occupe un espace permanent (donc pas de mémorisation)Raccourcis d’un menu les plus utiles

RubanBarres d’outils organisées en onglet qui offre la majorité des fonctionnalités de l’application

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 16/43

Page 17: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Éléments de fenêtreIntroduction Composants RétroactionOrganisation Disposition Configuration

Barre titre Contrôles de fenêtre

Lorsque la taille est modifiable• Réduire: bouton sur barre des tâches • Niveau inférieur: taille personnalisée précédente

Fermer : pour les fenêtres principales et secondairesAide : pour les fenêtres secondaires

TitreFenêtre principale : Icône Nom du document – Nom de l’applicationFenêtre secondaire: Nom du document – Nom de l’application (facultatif)

Barre d’étatBarre d étatAffiche des informations sur le statut de l’application

Barre de défilementPermet de parcourir les contenu d’un composant qui n’est pas visible à l’écran

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 17/43

Page 18: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

DialoguesIntroduction Composants RétroactionOrganisation Disposition Configuration

Composant autonome apparaissant dans une fenêtre secondaire

Pour activer une fonctionnalitéPour interroger l’utilisateurPour informer l’utilisateur

Deux modes d'interaction :Suspend l'application jusqu‘à sa complétion (modal)Fonctionne de façon parallèle à l'application (non‐modal)

Exemples de dialogues courants :Boîte de messageBoîte de sélection d'un fichierBoîte de contrôle d'impressionpBoîte à onglets

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 18/43

Page 19: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Boîtes à outils pour la construction d'interfaces utilisateur

Introduction Composants RétroactionOrganisation Disposition Configuration

utilisateur

1 I t d ti1. Introduction

2. Composants

3. Organisation

4. Disposition

5 C fi i5. Configuration

6. Rétroaction

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 19/43

Page 20: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Organisation hiérarchiqueIntroduction Composants RétroactionOrganisation Disposition Configuration

Une boîte à outils peut représenter les Widgetsp p gsous forme d'une hiérarchie de classes

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 20/43

Page 21: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Organisation hiérarchiqueIntroduction Composants RétroactionOrganisation Disposition Configuration

Une application utilise les Widgets de la boîte à pp goutils en construisant une hiérarchie d'instances.

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 21/43

Page 22: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Exemple d’applicationIntroduction Composants RétroactionOrganisation Disposition Configuration

Fenêtre principale construite avec plusieurs composantsBarre des menus

Barre d’outilsBarre d outils

Menu déroulant

Zone d’affichage

Barre d’étatBarre d état

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 22/43

Page 23: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Boîtes à outils pour la construction d'interfaces utilisateur

Introduction Composants RétroactionOrganisation Disposition Configuration

utilisateur

1 I t d ti1. Introduction

2. Composants

3. Organisation

4. Disposition

5 C fi ti5. Configuration

6. Rétroaction

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 23/43

Page 24: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

DispositionIntroduction Composants RétroactionOrganisation Disposition Configuration

Certaines composants comme les dialogues contiennent plusieurs autres composantsLa disposition de chaque p qcomposant à l'intérieur peut être déterminée :

de façon absoluede façon absoluede façon relative à l'aide de contraintes géométriques entre composants de taille fixecomme le précédent mais avec en plus des contraintes géométriques pour chaque composante, de taille variablevariable

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 24/43

Page 25: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Disposition absolueIntroduction Composants RétroactionOrganisation Disposition Configuration

Méthode simple et rapide d’aménagement des composants à l'intérieur d'une fenêtre de dialoguecomposants à l intérieur d une fenêtre de dialogueRéagit plus ou moins bien à la modification de la taille de la fenêtre mère du contenant

Ex.: boîte de dialoguesolution : écrire du code application recalculant la position et la taille des composants qui sera exécuté suite p p qà un événement de modification de la taille de la fenêtre mère

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 25/43

Page 26: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Disposition relative : traverses et ressortsIntroduction Composants RétroactionOrganisation Disposition Configuration

La position d'un composant peut être définie par rapport à la position d'une autre composante: à gauche,par rapport à la position d une autre composante: à gauche, à droite, en haut ou en bas par rapport au bord de la fenêtre qui la contient fixée à la bordure gauche, droite, du haut ou du bassous forme de contraintes géométriques entre les composants

Le positionnement et dimensionnement des composants peuvent être automatisés suite à une modification de la taille de la fenêtre mèresolution : métaphore des traverses et ressorts

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 26/43

Page 27: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Disposition relative : compression et étirementIntroduction Composants RétroactionOrganisation Disposition Configuration

On peut aussi fournir des informations quant à la taille (hauteur largeur) minimale‐maximale‐idéale de(hauteur, largeur) minimale‐maximale‐idéale de chaque composant, indiquant jusqu‘à quel point on peut les comprimer ou les étirerLa taille finale d'un composant peut varier en fonction de sa nature

Ex: la longueur de l‘étiquette pour un bouton poussoir ou duEx: la longueur de l étiquette pour un bouton poussoir ou du contexte selon les dimensions de la fenêtre mère

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 27/43

Page 28: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Exemple : Disposition Java SwingIntroduction Composants RétroactionOrganisation Disposition Configuration

La classe Jcomponent dont dérivent toutes les composantes définit les propriétés:p p

bounds, minimumSize, maximumSize, preferredSizeAbsolue

tous les composants de la bibliothèque Java Swing peuvent être p q g ppositionnés et dimensionnés à l'aide de la méthode setBounds()

RelativeUtilise des gestionnaires de géométrie

Exemple: BoxLayout(widget,f X AXIS,Y AXISg )plusieurs types de contenants existent, avec leurs routines de création

Exemple: createHorizontalBox(), createVerticalBox()ces contenants ont des méthodes pour insérer un espace de taille fixeces contenants ont des méthodes pour insérer un espace de taille fixe

(createHorizontalStrut(), createVerticalStrut())ou variable(createHorizontalGlue(), createVerticalGlue())

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 28/43

Page 29: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Exemple : Disposition Java SwingIntroduction Composants RétroactionOrganisation Disposition Configuration

BoxLayout, createHorizontalBox()1. Calcule la hauteur du composant le plus hautp p2. Tente d’agrandir verticalement tous les composants jusqu’à cette

hauteur3. Lorsqu’un composant n’atteint pas cette taille, un alignement est

demandé avec un appel de getAlignmentY qui alignera ledemandé avec un appel de getAlignmentY qui alignera le composant verticalement

4. Les largeurs préférées de chaque composant sont obtenues et additionnées

5. Lorsque la largeur totale est inférieure à la largeur du Box, les composants • sont étirés jusqu’à la largeur maximale• Sont placés de gauche à droite sans espaces supplémentaires deSont placés de gauche à droite sans espaces supplémentaires de

séparation• Lorsque la largeur totale préférée est supérieure à celle du Box, les

composants sont réduits jusqu’à la largeur minimale et si l’espace manque encore, ils ne sont pas affichés.

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 29/43

Page 30: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Exemple : Disposition Java SwingIntroduction Composants RétroactionOrganisation Disposition Configuration

// Création d'un contenantBox box = Box.createHorizontalBox();

// Création des composants en spécifiant la tailleJButton b1 = new JButton ("OK");b1.setPreferredSize(new Dimension(50,10));b1.setPreferredSize(new Dimension(50,10));JButton b2 = new JButton ("Annuler");

// Inscription des composantsb dd(b1)box.add(b1);box.add(Box.createHorizontalStrut(50));box.add(b2);

// Association du gestionnaire de géométriebox.setLayout(new BoxLayout (box, BoxLayout.X_AXIS));

java sun com/docs/books/tutorial/uiswing/layout/box htmljava.sun.com/docs/books/tutorial/uiswing/layout/box.html

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 30/43

Page 31: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Boîtes à outils pour la construction d'interfaces utilisateur

Introduction Composants RétroactionOrganisation Disposition Configuration

utilisateur

1 I t d ti1. Introduction

2. Composants

3. Organisation

4. Disposition

f5. Configuration

6. Rétroaction

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 31/43

Page 32: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Configuration des composantsIntroduction Composants RétroactionOrganisation Disposition Configuration

Certains attributs d'un composant sont modifiables par le concepteur d'application ou par l'utilisateur

Exemple: couleur d'avant‐ et d'arrière‐plan, police, étiquette, taille de la bordure

D'autres ne le sont pas Exemple: forme arrondie d'un bouton ou toute apparence spécifique àExemple: forme arrondie d un bouton ou toute apparence spécifique à une boîte à outils donnée ou au système d’exploitation

Cette possibilité de configuration permet la conception de composants plus génériques et offre beaucoup de flexibilitéComment configurer un composant:

Par des appels de fonction, lors de la création Par un mécanisme de préférences modifiables par l'utilisateur à travers l'interface de l'applicationl'interface de l'applicationEn spécifiant certains paramètres optionnels à la ligne de commandeen modifiant un fichier de ressources pour l'application

Exemple: fichier .inip

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 32/43

Page 33: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Configuration des composants (suite)Introduction Composants RétroactionOrganisation Disposition Configuration

Une ressource ou un attribut de composant est une donnée contenant de l'information sur son interface:donnée contenant de l information sur son interface: surtout son apparence, mais aussi son comportementSa dissociation du code permet

L'utilisation d'un éditeur de ressources De rendre la configuration accessible aux concepteurs visuels d'interfacesDe modifier la configuration sans pour autant devoir recompiler l'application

La syntaxe de spécification de ressources permetLa syntaxe de spécification de ressources permet souvent d'indiquer une ressource commune à un groupe de composants

l l défExemple: une valeur par défaut

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 33/43

Page 34: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Configuration des composants: comparaisonIntroduction Composants RétroactionOrganisation Disposition Configuration

Dans le codegarantit la valeur d'une ressource critiqueg qtoute modification requiert recompilation

À l'interfaceContrôle sur la flexibilité offerteÀ recommencer à chaque exécution

À la ligne de commandeFlexibilité et facilité d'utilisationLaborieux lorsqu’on a un grand nombre de ressources à paramétrer

Dans un fichierFlexibilité et personnalisation d'une applicationp ppRapidité de modificationUne mauvaise configuration peut rendre l'application inopérante ou dangereuseL d é i éLes erreurs de syntaxe ne sont pas nécessairement rapportées

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 34/43

Page 35: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Configuration : Java SwingIntroduction Composants RétroactionOrganisation Disposition Configuration

Spécification de propriétés individuelles dans le code:

Exemple: bouton.setBackground(Color.black) ;

Spécification de propriétés individuelles dans le d d tcode pour un groupe de composants:

Exemple: UIManager.put(Button.background,Color.black) ;

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 35/43

Page 36: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Boîtes à outils pour la construction d'interfaces utilisateur

Introduction Composants RétroactionOrganisation Disposition Configuration

utilisateur

1 I t d ti1. Introduction

2. Composants

3. Organisation

4. Disposition

5. Configuration

6. Rétroaction

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 36/43

Page 37: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Modes de rétroaction des composantsIntroduction Composants RétroactionOrganisation Disposition Configuration

Les composantes doivent être capables de signaler à l' li ti l é é t i d i tl'application les événements qui se produisent au niveau de l'interface. Plusieurs méthodes de rétroaction sont envisageables :rétroaction sont envisageables :

Les gestionnaires d‘événementsLes fonctions de rappelLes fonctions de rappelLes macros de connexion événements‐méthodesL i t i ( i l d l t )Les signaux et prises (signals and slots )Les fonctions virtuelles surchargées

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 37/43

Page 38: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Rétroaction : Les gestionnaires d‘événementsIntroduction Composants RétroactionOrganisation Disposition Configuration

Une routine acceptant directement tous les é é t dét té l tè d f êtévénements détectés par le système de fenêtrage quel que soit leur type.Un seul point de traitement pour tous les typesUn seul point de traitement pour tous les types d‘événementRemet tout le travail entre les mains duRemet tout le travail entre les mains du programmeur de l'application

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 38/43

Page 39: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Rétroaction : Les fonctions de rappelIntroduction Composants RétroactionOrganisation Disposition Configuration

Fonctions séparées des classes et possédant une interface normaliséeUn composant contient, dans sa définition, un certain nombre de conditions auxquelles le programmeur peut associer des fonctions de rappel, par exemple :

Le composant vient d‘être activé (ActivateCallback pour un Pushbutton)L‘état du composant vient d‘être basculé (ToggleButton)L l d t i t d h (V l Ch dC llb kLa valeur du composant vient de changer (ValueChangedCallback pour un Scale)

Une fonction de rappel est donc appelée en réponse à un événement prévu et prédéfini pour un composantévénement prévu et prédéfini pour un composantEn C, les fonctions de rappel doivent avoir une signature fixe, mais le compilateur n'est pas en mesure de vérifier si c'est bien le cas, ce qui peut causer des erreurs lors dec est bien le cas, ce qui peut causer des erreurs lors de l'exécution.

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 39/43

Page 40: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Rétroaction : Les macros de connexion Introduction Composants RétroactionOrganisation Disposition Configuration

Méthode utilisée par les MFC (Microsoft F d ti Cl ) t é é tFoundation Class ) pour connecter un événement (message) à une méthode d'une classeMéthode très peu orientée objetMéthode très peu « orientée‐objet »Utilise le préprocesseur de C pour générer les connexionsconnexionsDifficile à lire et à comprendreNé it l' tili ti d' til d' id à lNécessite l'utilisation d'un outil d'aide à la conception pour la construction de l'interface

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 40/43

Page 41: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Rétroaction : Les signaux et prises Introduction Composants RétroactionOrganisation Disposition Configuration

Mécanisme propre à Qt pour établir la connexion entre :U diti dét i é l d l' li tiUne condition déterminée par le programmeur de l'application Une méthode quelconque d'un objet

Les signaux et les prises sont définis au niveau de la classeg pUn signal définit la signature de la méthode qui pourra être appeléeUn signal ne définit pas une méthode comme telleUne prise (slot) est une méthode normale d'une classeLa signature de la prise doit correspondre exactement à la signature du signal sur lequel le programmeur veut la brancherbrancher

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 41/43

Page 42: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Rétroaction : Les signaux et prises Introduction Composants RétroactionOrganisation Disposition Configuration

Chaque classe définissant un signal ou une prise doit être traitée à l'aide du compilateur moc afin deêtre traitée à l aide du compilateur moc afin de produire une spécification acceptable pour le compilateur C++Un signal peut être émis n'importe où dans une méthode de la classe qui déclare le signal à l'aide de la macro emitmacro emitLa connexion entre un signal et une prise est établie à l'aide de la méthode statique connectl aide de la méthode statique connectQObject : :connect(emetteur,SIGNAL(nom signal),recepteur.SLOT(nom prise) ) ;

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 42/43

Page 43: LOG2420 on d'interfaces utilisateur Boîtes à outils pour

Rétroaction : Les fonctions virtuelles surchargées

Introduction Composants RétroactionOrganisation Disposition Configuration

Adopté par Java SwingMéth d t è i té bj tMéthode très « orientée‐objet »Permet un accès efficace au modèle de données:

les fonctions sont membres de la sous classe dules fonctions sont membres de la sous‐classe du composant choisi

Ce mécanisme, lorsqu'il est utilisé pour traiter tous les événements dans une application, exige, par exemple, de sous‐classer chaque bouton pour traiter l‘événementtraiter l événementButtonPress : problème de mise en application à très grande échelleg

LOG2420 ‐ Analyse et conception d'interfaces utilisateur ‐ Boîtes à outils pour la construction d'interfaces utilisateur 43/43