HOWTO · Tkinter
So ändern Sie den Tkinter-Labeltext
Dieses Tutorial demonstriert, wie man den Tkinter-Labeltext ändert.
Auf dieser Seite
In diesem Tutorial wird vorgestellt, wie man den Tkinter-Labeltext durch Anklicken einer Schaltfläche ändert.
Benutzen Sie StringVar, um den Tkinter-Labeltext zu ändern
StringVar ist ein Typ des Tkinter-Konstruktors, um die Tkinter-String-Variable zu erstellen.
Nachdem wir die StringVar-Variable mit den Tkinter-Widgets assoziiert haben, wird Tkinter dieses spezielle Widget aktualisieren, wenn die Variable verändert wird.
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.text = tk.StringVar()
self.text.set("Test")
self.label = tk.Label(self.root, textvariable=self.text)
self.button = tk.Button(
self.root, text="Click to change text below", command=self.changeText
)
self.button.pack()
self.label.pack()
self.root.mainloop()
def changeText(self):
self.text.set("Text updated")
app = Test()
self.text = tk.StringVar()
self.text.set("Test")
Der Tkinter-Konstruktor konnte die String-Variable nicht mit dem String wie self.text = tk.StringVar() initiieren.
Wir sollten die set Methode aufrufen, um den StringVar Wert zu setzen, wie self.text.set("Test").
self.label = tk.Label(self.root, textvariable=self.text)
Sie assoziiert die StringVar Variable self.text mit dem Label-Widget self.label, indem sie die textvariable auf self.text setzt. Das Tk-Toolkit beginnt, die Änderungen von self.text zu verfolgen und wird den Text self.label aktualisieren, wenn self.text modifiziert wird.
Der obige Code erstellt ein dynamisches Tkinter-Label. Es zeigt den Tkinter-Labeltext automatisch an, wenn self.text geändert wird.
Label text Eigenschaft zum Ändern des Labeltextes
Eine andere Lösung, um den Text des Tkinter-Labels zu ändern, ist die Änderung der text-Eigenschaft des Labels.
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(self.root, text="Text")
self.button = tk.Button(
self.root, text="Click to change text below", command=self.changeText
)
self.button.pack()
self.label.pack()
self.root.mainloop()
def changeText(self):
self.label["text"] = "Text updated"
app = Test()
Der Text des Labels könnte mit text="Text" eingeleitet werden und könnte auch aktualisiert werden, indem man den neuen Wert dem text Schlüssel des Label-Objektes zuweist.
Wir könnten auch die text Eigenschaft mit der tk.Label.configure() Methode ändern, wie unten gezeigt. Es funktioniert mit den oben genannten Codes genauso.
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(self.root, text="Text")
self.button = tk.Button(
self.root, text="Click to change text below", command=self.changeText
)
self.button.pack()
self.label.pack()
self.root.mainloop()
def changeText(self):
self.label.configure(text="Text Updated")
app = Test()