Hoe de status van de Tkinter-knop te wijzigen

Tkinter Button heeft twee statussen,

  • NORMAAL - op de knop kan worden geklikt door de gebruiker
  • UITSCHAKELEN - Er kan niet op de knop worden geklikt
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()

De linkerknop is uitgeschakeld (grijs) en de rechterknop is normaal.

Tkinter-knopstatussen - UITGESCHAKELD en NORMAAL

De toestanden kunnen worden gewijzigd in de woordenboekachtige methode of configuratie-achtige methode.

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

Door te klikken button2 , roept het de functie switchButtonState op om de button1 status DISABLED om te schakelen van naar NORMAL , of vice versa.

Tkinter-knopstatussen Schakelaar - tussen UITGESCHAKELD en NORMAAL

state is de optie van Tkinter Button widget. Alle opties in de Button widget zijn keys van Button als een woordenboek.

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

De state wordt bijgewerkt door de waarde van state in het Button woordenboek te wijzigen.

Het state kan ook worden gewijzigd met behulp van de config methode van het Button object. Daarom kan de switchButtonState() functie ook worden geïmplementeerd zoals hieronder,

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

Zelfs de snaren normal en disabled kunnen eenvoudig worden gebruikt in plaats van tk.NORMAL en tk.DISABLED.

Gerelateerde Artikelen - Tkinter Button

  • Argumenten doorgeven aan Tkinter Button Command
  • Een Tkinter-venster sluiten met een knop
  • Hoe een nieuw venster te maken door op een knop in Tkinter te klikken