HOWTO · Tkinter
Comment changer l'état du bouton Tkinter
Ce tutoriel montre comment changer l'état du bouton Tkinter, de désactivé à normal, ou de normal à désactivé
Sur cette page
Tkinter Button a deux états,
NORMAL- Le bouton peut être cliqué par l’utilisateurDISABLE- 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.
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.
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.