Come cambiare lo stato del pulsante Tkinter

Jinku Hu 25 giugno 2020
Come cambiare lo stato del pulsante Tkinter

Tkinter Button ha due stati,

  • NORMAL - Il pulsante può essere cliccato dall’utente
  • DISABLE - Il pulsante non è cliccabile
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()

Il tasto sinistro è disabilitato (grigio fuori) e il tasto destro è normale.

Stati del pulsante Tkinter - DISABILITATO e NORMALE

Gli stati potrebbero essere modificati nel metodo simile al dizionario o nel metodo simile alla configurazione.

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()

Facendo clic su button2, chiama la funzione switchButtonState per passare dallo stato button1 da DISABLED a NORMAL, o viceversa.

Tkinter ButtonState Switch - tra DISABLED e NORMAL

state è l’opzione del widget Button di Tkinter. Tutte le opzioni del widget Button sono i tasti di Button come dizionario.

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

Lo state viene aggiornato cambiando il valore di state nel dizionario Button.

Lo state potrebbe anche essere modificato usando il metodo config dell’oggetto Button. Pertanto, la funzione switchButtonState() potrebbe anche essere implementata come segue,

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

Anche le stringhe normal e disable potrebbero essere semplicemente usate piuttosto che tk.NORMAL e tk.DISABLED.

Autore: 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

Articolo correlato - Tkinter Button