Tkinter Tutorial - Schaltfläche

Jinku Hu 3 Januar 2023
  1. Tkinter Button default Option
  2. Tkinter Button Command Callback
Tkinter Tutorial - Schaltfläche

Das Tkinter Button Widget ist dem Tkinter Label Widget sehr ähnlich. Es hat fast die gleichen Optionen wie die im Label, außer dass es eine zusätzliche default Option hat. Wir werden Details zu diesem default nach einem einfachen Knopf-Beispiel geben.

Sie könnten zwei einfache Buttons mit Hilfe der untenstehenden Demo-Codes generieren.

from sys import version_info

if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk

app = tk.Tk()
button1 = tk.Button(app, text="Python Label 1")
button2 = tk.Button(app, text="Python Label 2")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.LEFT)
app.mainloop()

Das Fenster mit zwei nebeneinander liegenden Schaltflächen zeigt sich, nachdem Sie die Codes ausgeführt haben.

Tkinter Tutorial_Grundbeschriftung

Tkinter Button default Option

Die default Option in button sagt, dass die Taste die Standardtaste in der GUI ist, z.B. die, die automatisch aufgerufen wird, wenn der Benutzer die Enter- oder Return-Taste drückt.

Tkinter Button Command Callback

Die Option command ruft die Callback-Funktion auf, wenn die Taste gedrückt wird.

role=“alert”>Der Zustand des Buttons sollte aktiv sein, wenn seine Kommando-Option aktiviert ist, andernfalls wird kein Callback aufgerufen.

from sys import version_info

if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk


app = tk.Tk()
labelExample = tk.Button(app, text="0")


def change_label_number():
    counter = int(str(labelExample["text"]))
    counter += 1
    labelExample.config(text=str(counter))


buttonExample = tk.Button(app, text="Increase", width=30, command=change_label_number)

buttonExample.pack()
labelExample.pack()
app.mainloop()

Sie erzeugt einen Button und ein Label-Widget im Hauptfenster. Die Zahl im Labeltext wird bei jedem Klick auf den Button um 1 erhöht.

Tkinter Tutorial_Button Befehls-Callback

def change_label_number():
    counter = int(str(labelExample["text"]))
    counter += 1
    labelExample.config(text=str(counter))

Die change_label_number ist die Funktion, die aufgerufen wird, wenn man auf die Schaltfläche klickt. Sie erhält die Nummer des Labels und setzt dann das Label um eins erhöht.

buttonExample = tk.Button(app, text="Increase", width=30, command=change_label_number)

Sie baut die Bindung zwischen Button und seiner Callback-Funktion auf.

Tkinter Button Command Callback Funktion mit Argumenten

Sie benötigen ein partial Objekt von functools, wenn Sie Argumente an die Callback-Funktionen übergeben müssen. partial Objekte sind aufrufbare Objekte mit den positionalen Argumenten args und den Schlüsselwort-Argumenten keywords.

Der folgende Codeausschnitt demonstriert, wie man diese partial Funktion im Button-Kommando verwendet.

def change_label_number(num):
    counter = int(str(labelExample["text"]))
    counter += num
    labelExample.config(text=str(counter))


buttonExample = tk.Button(
    app, text="Increase", width=30, command=partial(change_label_number, 2)
)
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