Tk facile - le widget radiobutton

 

ulis, 2006-10-08.

Exercices : copiez-collez les exemples, exécutez-les puis modifiez-les. Durée : 30mn.


Premier script

  set ::var lun
  label .l -textvar ::var -bd 1 -relief groove -width 6
  grid .l -pady 10
  foreach j {lun mar mer jeu ven w-e} \
  {
    radiobutton .$j -text $j -variable ::var -value $j
    grid .$j -sticky w
  }

Pour la commande label, voir Tk facile - le widget label.

La commande radiobutton crée un widget radiobutton et une commande du nom du widget. En créant le widget on peut aussi préciser la valeur des options du widget. L'option -text indique le texte à afficher à côté de la coche. L'option -variable indique le nom de la variable commune qui contient la valeur associée au bouton actif. L'option -value indique la valeur associée à ce bouton et à mettre dans la variable commune.

La commande grid affiche le widget et son option -sticky w le place à gauche (ceci pour pallier les différence de taille des textes).


Sans coche

Le radiobouton peut aussi apparaître sans coche. Lorsqu'il sera choisi il apparaîtra en creux.

  set ::var lun
  label .l -textvar ::var -bd 1 -relief groove -width 6
  grid .l -pady 10
  foreach j {lun mar mer jeu ven w-e} \
  {
    radiobutton .$j -text $j -var ::var -value $j \
      -indicatoron 0 -width 6
    grid .$j -sticky w
  }

L'option -indicatoron indique si la coche est montrée (valeur 1) ou cachée (valeur 0). L'option -width indique la largeur du bouton en nombre de caractères moyens.


Sans texte

Le radiobouton peut aussi apparaître sans texte.

  set ::var white
  label .l -bg white -bd 1 -relief groove -width 7 -pady 3
  grid .l -pady 10
  foreach c {white blue green red gray} \
  {
    radiobutton .$c -bg $c -var ::var -value $c \
      -indicatoron 0 -width 6 -selectcolor $c \
      -command [list .l config -bg $c]
    grid .$c -sticky w
  }

L'option -selectcolor indique la couleur du fond quand le bouton est sélectionné. L'option -command indique le script à exécuter lors de la sélection du bouton.

Il y a une petite difficultée avec l'option -command. Le radiobouton étant un bouton, voir Tk facile - le widget button.


Avec une image

Le radiobouton peut afficher une image ou une bitmap.

  set ::var error
  label .l -bitmap error -bd 1 -relief groove -width 32 -height 32
  grid .l -pady 10
  foreach b {error info question warning} \
  {
    radiobutton .$b -bitmap $b -var ::var -value $b \
      -indicatoron 0 -width 32 -height 32 \
      -command [list .l config -bitmap $b]
    grid .$b -sticky w
  }

L'option -bitmap indique la bitmap à afficher. L'option -width indique la largeur du bouton en pixels à cause de l'option -bitmap dont la valeur est non vide. L'option -height indique la hauteur du bouton en pixels à cause de l'option -bitmap.


Voir aussi


Discussion


Catégorie Cours | Catégorie Encyclopédie Tk