Skip navigation.

exploreopera

| Help

Sign up | Help

photo

Groumphy au quotidien

AutoIt : interface conviviale

, ,

AutoIt dans sa version 3 permet de faire des interfaces graphiques. Ce n’est un secret pour personne.
Toutefois il y a des leçons à tirer sur les GUI (interface graphique) afin de les rendre conviviales.
Passons en revue quelques méthodes simples.
Créons une feuille.
#include <GUIConstants.au3>
$GUI_NomFeuille = GUICreate("Nom de la feuille", 340, 210, -1, -1)
GUISetState(@SW_SHOW)

Que pouvons-nous constater ?
  1. nous utilisons des valeurs rondes pour la dimension de la feuille ;
  2. nous laissons l’emplacement de la feuille par défaut ;
  3. la feuille est nommée d’un nom compréhensible de l’endroit où elle se trouve ou de l’action qu’elle mène (exemple : Aide si c’est la feuille Aide etc.)

Identiquement à une interface web, nous pouvons rajouter un (des) menu(s).
$mn_Fichier = GUICtrlCreateMenu("&Fichier")
$ssMn_Ouvrir = GUICtrlCreateMenuItem("&Ouvrir", $mn_Fichier)
$ssMn_Quitter = GUICtrlCreateMenuItem("&Quitter", $mn_Fichier)
$MenuItem1 = GUICtrlCreateMenu("&Aide")
$ssMn_APropos = GUICtrlCreateMenuItem("A &propos", $MenuItem1)
$ssMn_Aide = GUICtrlCreateMenuItem("A&ide", $MenuItem1)

Que pouvons-nous remarquer ?
  1. nous utilisons des noms de menu dit « classique » (tel Fichier, A propos) ;
  2. les sous-menus sont eux aussi de noms « classique » ;
  3. chaque menu et sous-menu dispose d’une clé d’accès (éperluette devant la lettre servant de clé d’accès) ;
  4. les menus sont placés dans un ordre logique rappelant les logiciels les plus connus (par exemple Fichier suivis de Editions, suivis de Affichage, suivis de A propos/Aide etc.) ;

Une interface graphique permet la plupart du temps de faire de nombreuses actions. Il est généralement conseillé de grouper les actions similaires ou de séparer les types d’actions.
Cela se fait généralement par un groupe.
Créons en un :
$Gp_GroupeAction = GUICtrlCreateGroup(" Groupe de l'action : ", 10, 10, 320, 65)
GUICtrlCreateGroup("", -99, -99, 1, 1)

Nous pouvons dire d’emblée les choses suivantes :
  1. le groupe est créé et fermé ;
  2. des valeurs rondes sont utilisées sur le groupes ;
  3. des valeurs logiques sont utilisées pour placer le groupe mais aussi pour déterminer sa largeur (ainsi je place mon groupe à 10 pixels du bord de la feuille mais je sais aussi que sa fin sera « amputée » de 10 pixels du bord droit de la feuille ; ce qui nous fait la largeur de la GUI [340] soustraite des 10 du bord gauche et du bord droit ce qui nous donne 320 en largeur) ;

Dans le groupe nous pouvons placer différents éléments. Notamment des « labels » et des boutons qui permettent de faire des actions.
 $btn_Ouvrir = GUICtrlCreateButton("&Ouvrir", 200, 32, 110, 30, 0)
GUICtrlSetTip($btn_Ouvrir, "Ouvrir un fichier dans la mémoire")
GUICtrlSetCursor ($btn_Ouvrir, 0)
$lbl_BtnOuvrir = GUICtrlCreateLabel("Ouvrir un fichier dans la mémoire", 20, 40, 160, 20)

Ici aussi quelques petits détails doivent nous sauter aux yeux :
  1. nous utilisons toujours des valeurs rondes ;
  2. les contrôles d’actions disposent d’une infobulle ;
  3. les contrôles d’actions disposent d’un autre curseur que celui de l’interface graphique ;
  4. pour déterminer les infobulles et le curseur nous n’utilisons pas la valeur par défaut (égale à -1) mais bien le nom de la variable qui détermine le contrôle ;

Les boutons placés en bas de la GUI, hors de tout groupes, non accompagné de label, etc. seront les boutons généraux (par exemple : Quitter, Aide, etc.) et bien souvent repris dans le menu Fichier.

Comme vous l’aurez compris, pour avoir une interface graphique agréable, l’homogénéité devra être présente, l’accessibilité tout autant (via les clés d’accès) etc.

En parlant d’accessibilité, il est bon de rappeler qu’il est correct de mettre des données incorrectement introduite dans une autre couleur… Toutefois qui ne vous dit pas que la personne qui utilise votre script ne confond pas les couleurs ?

Il serait tout aussi correct (par exemple) d’utiliser la couleur et des astérisques pour informer que les données ne sont pas correctes.

Nous pourrions par exemple utiliser une routine de ce type sur un Input :

Création de l’Input
 $gp_GroupeAction2 = GUICtrlCreateGroup(" Encodage du nom : ", 10, 85, 320, 65)
$btn_Verifier = GUICtrlCreateButton("&Vérifier", 200, 105, 110, 30)
GUICtrlSetTip(-1, "Vérifier les données encodées")
GUICtrlSetCursor (-1, 0)
$ipt_EncoderNom = GUICtrlCreateInput("Encoder votre nom", 20, 110, 170, 20)
GUICtrlSetTip(-1, "Encodez votre nom et poussez par la suite sur le bouton Vérifier")
GUICtrlCreateGroup("", -99, -99, 1, 1)

La routine de contrôle
Case $btn_Verifier
If GUICtrlRead($ipt_EncoderNom) <> "pwouet" Then
Dim $tmp = GUICtrlRead($ipt_EncoderNom)
GUICtrlSetData($ipt_EncoderNom, "***" & $tmp & "***")
GUICtrlSetColor($ipt_EncoderNom, 0xff0000)
GUICtrlSetData($btn_Verifier, " => Revérifier")
GUICtrlSetColor($btn_Verifier, 0xff0000)
Else
MsgBox(0 + 64, "Information", "Données encodées correcte.")
EndIf

Il est bon de retenir que ce qui s’applique sur le web, s’applique sur les GUI… Tous les trucs, astuces, modes sont bons pour pouvoir donner une « consistance » à une interface graphique !

Installation d’imprimante par script AutoItAutoIt : rechercher sur Google

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

Please type this security code : 5f5fef

Smilies

October 2008
MTWTFSS
September 2008November 2008
12345
6789101112
13141516171819
20212223242526
2728293031