如何更改 Tkinter 标签文本

Jinku Hu 2023年1月30日 2019年12月2日
  1. 使用 StringVar 改变 Tkinter 的标签文
  2. 通过标签 text 属性更改标签文本
如何更改 Tkinter 标签文本

在本教程中,我们将介绍如何通过单击按钮来更改 Tkinter 标签文本。

使用 StringVar 改变 Tkinter 的标签文

StringVar 是创建 Tkinter 字符串变量的 Tkinter 构造函数的一种类型。

StringVar 变量与 Tkinter 控件关联后,修改 StringVar 变量后,Tkinter 将自动更新此控件。

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

Tkinter 构造函数无法使用类似于字符串初始化的方法来初始化字符串 StringVar 变量。

我们应该调用 set 方法来设置 StringVar 值,例如 self.text.set("Test")

self.label = tk.Label(self.root, textvariable=self.text)

通过将 textvariable 设置为 self.text,它将 StringVar 变量 self.text 与标签控件 self.label 关联。Tk 工具箱然后开始跟踪的更改,如果 self.text 被修改的话,它将更新 self.label 的文本。

通过标签 text 属性更改标签文本

更改 Tkinter 标签文本的另一种解决方案是更改标签的 text 属性。

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

标签的文本可以用 text="Text"来初始化,通过将新值分配给标签对象的 text 键来其更新标签文本。

我们还可以通过 tk.Label.configure() 方法来更改 text 属性,如下面一段代码所示,它与上面的代码本质上是相同的。

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

相关文章 - Tkinter Label