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 :