Comment changer l'état du bouton Tkinter
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
.
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