Outils pour utilisateurs

Outils du site


barre_de_menu

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
barre_de_menu [2008/07/05 17:20]
tyrtamos
barre_de_menu [2008/07/08 07:40] (Version actuelle)
tyrtamos
Ligne 437: Ligne 437:
 On veut qu'un menu se présente un peu comme cela (exemple des items d'un menu de type "​Fichier"​):​ On veut qu'un menu se présente un peu comme cela (exemple des items d'un menu de type "​Fichier"​):​
  
-  Ouvrir ​      ​Ctrl+O +  Ouvrir ​       Ctrl+O 
-  Fermer ​      ​Ctrl+W +  Fermer ​       Ctrl+W 
-  Enregistrer ​ Ctrl+S+  Enregistrer ​  ​Ctrl+S
   Quitter ​      Alt+X   Quitter ​      Alt+X
  
-C'est à dire que les raccourcis commandes claviers sont calés automatiquement à droite.+C'est à dire que les raccourcis commandes claviers sont alignés.
  
 Le problème, c'est que dans une police de caractères type "​arial",​ les caractères n'ont pas tous la même largeur en pixels à l'​écran. Le problème, c'est que dans une police de caractères type "​arial",​ les caractères n'ont pas tous la même largeur en pixels à l'​écran.
  
-Alorson va utiliser une des fonctions du module tkFont: "​measure(texte)",​ qui mesure en pixel la longueur d'un texte. Et on ajustera à la fin avec des espaces.+==== Solution "​normale"​ avec l'​option "​accelerator"​ ==== 
 + 
 +J'ai mis pas mal de temps à trouver cette option qui ne se trouve pas dans tous les manuels. 
 + 
 +Au lieu de faire par exemple: 
 + 
 +<code python>​ 
 +self.edition.add_command(label="​Copier ​  ​Ctrl-C"​underline=2,​ command = self.copier) 
 +</​code>​ 
 + 
 +On fait: 
 + 
 +<code python>​ 
 +self.edition.add_command(label="​Copier",​ accelerator="​Ctrl-C",​ underline=2,​ command = self.copier) 
 +</​code>​ 
 + 
 +Et les différents codes de commande clavier d'un même menu et cités par accelerator,​ seront alignés 
 + 
 +==== Solution avec "​measure"​ ==== 
 + 
 +Je cite cette solution pour mémoire et parce que c'est un exemple d'​utilisation de la méthode "​measure"​ qui peut servir à d'​autres choses. 
 + 
 +On va utiliser une des fonctions du module tkFont: "​measure(texte)",​ qui mesure en pixel la longueur d'un texte. Et on ajustera à la fin avec des espaces
 + 
 +L'​alignement n'est pas parfait: on peut faire une erreur maxi égale au nombre de pixels d'un espace - 1. Mais c'est tout de même très bien! 
 + 
 +l'​alignement choisi ici est de caler les codes clavier à droite. Mais on pourrait aussi les aligner sur leur 1er caractère en modifiant le code.
  
 La fonction qui ajuste l'item s'​appelle ici: ajusteitems(). La fonction qui ajuste l'item s'​appelle ici: ajusteitems().
barre_de_menu.txt · Dernière modification: 2008/07/08 07:40 par tyrtamos