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