So ändern Sie den Tkinter-Labeltext

Jinku Hu 30 Januar 2023
  1. Benutzen Sie StringVar, um den Tkinter-Labeltext zu ändern
  2. Label text Eigenschaft zum Ändern des Labeltextes
So ändern Sie den Tkinter-Labeltext

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