Variables de contrôle
Les variables de contrôle (IntVar, DoubleVar et StringVar) permettent de rendre dynamique certains affichages de tkinter (numérique ou chaine de caractères).
Un exemple classique est d'associer une StringVar à l'affichage d'un Label. À la place de l'option text du Label, on utilisera l'option textvariable avec comme valeur le nom de la StringVar (définie ailleurs dans le code du programme).
On définit la valeur d'une variable de contrôle avec sa méthode set(), et on récupère son contenu avec sa méthode get().
from random import choice
def modifStatus():
phrases = ["Je suis prêt", "Je fais l'action 1", "Encore en attente"]
status_nouveau = choice(phrases) # choisit un status au hasard !
status.set(status_nouveau) # l'affichage du Label s'actualise avec le nouveau status
def compteurIncrementer():
compteur_actuel = compteur.get() # récupère la valeur actuelle de compteur
compteur_nouveau = compteur_actuel + 1
compteur.set(compteur_nouveau) # définit une nouvelle valeur pour le compteur
interface = tk.Tk()
status = tk.StringVar()
status.set("En attente...")
compteur = tk.IntVar()
compteur.set(1)
tk.Label(interface, textvariable=status).pack()
tk.Label(interface, textvariable=compteur).pack()
tk.Button(interface, text="changer de status", command=modifStatus).pack()
tk.Button(interface, text="incrémenter le compteur", command=compteurIncrementer).pack()
Les autres utilisations quasi-obligatoires sont couplées à l'utilisation des widgets :
- Entry : pour récupérer le texte saisi par l'utilisateur avec une StringVar
- Radiobutton : un groupe de boutons radio doit partager une variable de contrôle commune (Radiobutton)
- Scale : pour récupérer la valeur du curseur
Compléments et détails
Variabels de contrôle (TKinter pour ISN - Étienne FLORENT)