Wie man den Status der Tkinter-Taste ändert

Jinku Hu 5 November 2020 Tkinter Tkinter Button
Wie man den Status der Tkinter-Taste ändert

Tkinter Button hat zwei Zustände,

  • NORMAL - Die Taste kann vom Benutzer angeklickt werden.
  • DISABLE - Die Schaltfläche ist nicht klickbar
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()

Die linke Taste ist deaktiviert (grau unterlegt) und die rechte Taste ist normal.

Zustände der Tkinter-Taste - DEAKTIVIERT und NORMAL

Die Zustände könnten im Dictionaryähnlichen Verfahren oder im konfigurations-ähnlichen Verfahren modifiziert werden.

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

Durch Anklicken von button2 wird die Funktion switchButtonState aufgerufen, um den Zustand von button1 von DISABLED auf NORMAL oder umgekehrt umzuschalten.

Tkinter Button-State Umschalten - zwischen DISABLED und NORMAL

state ist die Option des Tkinter Button Widgets. Alle Optionen im Button Widget sind die keys von Button als Dictionary.

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

Der state wird durch Ändern des Wertes von state im Button-Dictionary aktualisiert.

Der Status kann auch durch die config Methode des Button Objektes verändert werden. Daher könnte die switchButtonState() Funktion auch wie unten beschrieben implementiert werden,

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

Sogar die Zeichenketten normal und disabled konnten einfach verwendet werden, anstatt tk.NORMAL und tk.DISABLED.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Autor: 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

Verwandter Artikel - Tkinter Button