So ändern Sie den Tkinter-Labeltext

  1. Benutzen Sie StringVar, um den Tkinter-Labeltext zu ändern
  2. Label text Eigenschaft zum Ändern des Labeltextes

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

Tkinter set Label text

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.

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

Verwandter Artikel - Tkinter Label

  • Wie man den Rand des Tkinter-Label-Widgets festlegt
  • Wie Sie den Text des Tkinter-Etiketts erhalten
  • comments powered by Disqus