LE SCALE

Le scale est un curseur de réglage pour définir une valeur dans votre programme. Il est très facile d'utilisation.

Les options les plus courantes sont :

  • Afficher un label
  • L'orienter vertical ou horizontal
  • Afficher une graduation
  • Afficher sa valeur courante.

Voici donc comment l'utiliser :

creer et afficher un scale

A son plus simple élément voici le code pour créer un scale :

scale .s
pack .s

Afficher un texte ou label sur le scale

Vous pouvez ajouter un label de description avec l'option label comme ceci :

scale .scl -label "Age :"

definir une valeur dans le code

Si sa valeur est stockée dans la variable age, il suffit simple d'écrire :

set age 25

Choisir l'orientation du scale

Pour un scale horizontal :

scale .scl -label "Age :" -orient h


Pour un scale vertical :

scale .scl -label "Age :" -orient v

 

definir une echelle de reglage / afficher la valeur

Pour définir une échelle de 10 à 50 par exemple voici le code :

scale .scl -orient h -from 10 -to 50

La valeur ainsi réglée se balladera entre les limites basse et haute.

Il est possible d'affichier la valeur directement sur le widget par l'option showvalue :

scale .scl -orient h -from 10 -to 50 -showvalue 1

showvalue peut prendre deux états : 0 ou 1 pour non visible et visible.

Enfin pour changer le nombre de digit de la valeur utiliser l'option digit :

scale .scl -orient h -from 10 -to 50 -digit 3

vous affichera :

 

J'exagère pour que vous compreniez, j'affiche 6 digits :

scale .scl -orient h -from 10 -to 50 -digit 6

recuperer la valeur du scale et l'utiliser dans votre programme

La valeur de votre scale sera stocké dans l'otion variable comme ceci :

scale .scl -variable age 

ainsi vous pourrez connaitre la valeur du scale par la commande :

puts $age 

Il faut savoir que la valeur modifiée du scale sera présente dans la variable tout au long du déroulement de votre logiciel. Je veux dire par là que nous n'avons pas besoin d'évènement sur le widget pour faire varier sa valeur.

modifier la graduation

Dans notre exemple la graduation est la barre de chiffres de 10 à 50.

Pour la modifier utiliser l'option tickinterval

scale .scl -label "Age :" from 10 -to 50 -variable age -tickinterval 10

Ne définissez pas une intervale trop petite sans quoi la graduation ne sera pas du tout parlante.

exemple : si vous mettez 3 voici le résultat :

deplacer le curseur avec les touches fleches sur votre clavier

Il suffit simplement de lui donner le focus avec cette commande :

focus .scl

Par contre cela affichera un cadre autour du widget comme ceci :

  • Pour un scale horizontal utilisez les flèches gauche et droite.
  • Pour un scale vertical, utilisez les flèches haut bas.

Un petit exemple concret pour resumer

scale widget

Voici un petit exemple qui va nous permettre de changer le texte d'un label en bougeant la valeur de notre Scale.

Voici le code de l'application:

frame .fr
pack .fr -fill both -expand 1

scale .fr.scl -orient horizontal -from 0 -to 100 -length 150  -variable val -showvalue 0
place .fr.scl -x 50 -y 50 

label .fr.lbl -textvariable val
place .fr.lbl -x 80 -y 110

wm title . "Exemple de Scale"
wm geometry . 350x250+300+300

 

Ce code est très simple. Vous l'aurez vite compris, la valeur du scale se trouve dans la variable VAL qui est la même que celle du label.

N'oubliez pas dans votre application de définir la variable comme globale si vous voulez utiliser la valeur du scale dans les procédures privées.