LES CHOOSERS ou FENÊTRES DE SELECTION

Les Chooser sont des boites de dialogue vous permettant de choisir ou de sauvegarder :

  • Des Fichiers
  • Des répertoires
  • Des couleurs
  • Des polices de caractères

Les voici détaillées dans cette page :

FOLDER CHOOSER ou sélection de répertoire

Le FolderChooser vous permet de récupérer le nom d'un répertoire à l'aide d'une boite de dialogue.

Appelez la fenêtre par la commande tk_chooseDirectory  et récupérez le chemin complet dans une variable.

Voici le code de l'exemple :

wm  title . "selectionner un repertoire"
button .v -text "selectionner" -command {monrep}
pack .v

proc monrep {} {
set dir [tk_chooseDirectory -initialdir ~ -title "Répertoire pour le projet TK"]
if {$dir eq ""} {
   label .v.l -text "No directory selected"
} else {
   label .v.l -text "Selected $dir"
}
pack .v.l
}

Le résultat sera présent dans la variable $dir

 

FILE CHOOSER ou sélecteur de fichier

Le FileChooser est une boite de dialogue vous permettant de sélectionner ou sauvegarder un fichier.

Vous pouvez définir le type de fichier par un filtre (voir exemple)

Vous appelez la fenêtre par tk_getOpenFile et vous récupérez le chemin complet de votre fichier dans une variable.

Voici un simple code pour son utilisation:

set types {
    {"All Source Files"     {.tcl .tk } }
    {"Image Files"          {.gif .png .jpg} }
    {"All files"            *}
}

proc onSelect { label } {
    global types   
    set file [tk_getOpenFile -filetypes $types -parent .]
    $label configure -text $file
}

label .l -text "..."
place .l -x 20 -y 90
button .b -text "Select a file" \
        -command "onSelect .l"
place .b -x 20 -y 30
wm title . "openfile" 
wm geometry . 350x200+300+300

Le chemin sera dans la variable $file

 

COLOR CHOOSER ou sélection de couleur

Le ColorChooser vous permet de choisir une couleur pour l'utiliser dans votre programme.

Son utilisation est très simple :

Vous l'appelez par la commande tk_chooseColor et vous récupérez la valeur de la couleur dans une variable.

Voici le code pour son utilisation :

proc doIt {widget} {
    set current_color [tk_chooseColor -title "Choose a background color" -parent .]
    $widget configure -background $current_color
}

label .l
button .b -text "Choose a color..." -command {doIt .b}
grid .b -row 0 -column 0

Dans cet exemple nous avons un simple bouton qui, lors d'un clic, ouvre la boite colorchooser et récupère dans la variable current_color la valeur de la couleur choisie et l'applique en fond du bouton.

Notez au passage que l'underscore "_" est toléré dans le nom d'une variable.