Comment changer l'état du bouton Tkinter

Jinku Hu 25 juin 2020
Comment changer l'état du bouton Tkinter

Tkinter Button a deux états,

  • NORMAL - Le bouton peut être cliqué par l’utilisateur
  • DISABLE - Le bouton n’est pas cliquable
try:
    import Tkinter as tk
except:
    import tkinter as tk


app = tk.Tk()
app.geometry("300x100")
button1 = tk.Button(app, text="Button 1", state=tk.DISABLED)
button2 = tk.Button(app, text="EN/DISABLE Button 1")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.RIGHT)
app.mainloop()

Le bouton de gauche est désactivé (grisé) et le bouton de droite est normal.

États du bouton Tkinter - DISABLED et NORMAL

Les états peuvent être modifiés par la méthode de type dictionnaire ou par la méthode de type configuration.

try:
    import Tkinter as tk
except:
    import tkinter as tk


def switchButtonState():
    if button1["state"] == tk.NORMAL:
        button1["state"] = tk.DISABLED
    else:
        button1["state"] = tk.NORMAL


app = tk.Tk()
app.geometry("300x100")
button1 = tk.Button(app, text="Python Button 1", state=tk.DISABLED)
button2 = tk.Button(app, text="EN/DISABLE Button 1", command=switchButtonState)
button1.pack(side=tk.LEFT)
button2.pack(side=tk.RIGHT)
app.mainloop()

En cliquant sur bouton2, il appelle la fonction switchButtonState pour faire passer l’état du bouton1 de DISABLED à NORMAL, ou vice versa.

Tkinter ButtonState Switch - entre DISABLED et NORMAL

state est l’option du widget Tkinter Button. Toutes les options du widget Button sont les keys de Button comme un dictionnaire.

def switchButtonState():
    if button1["state"] == tk.NORMAL:
        button1["state"] = tk.DISABLED
    else:
        button1["state"] = tk.NORMAL

state est mis à jour en changeant la valeur de state dans le dictionnaire de Button.

state peut aussi être modifié en utilisant la méthode config de l’objet Button. Par conséquent, la fonction switchButtonState() pourrait aussi être implémentée comme ci-dessous,

def switchButtonState():
    if button1["state"] == tk.NORMAL:
        button1.config(state=tk.DISABLED)
    else:
        button1.config(state=tk.NORMAL)

Même les chaînes normal et disabled pourraient être simplement utilisées plutôt que tk.NORMAL et tk.DISABLED.

Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - Tkinter Button