如何更改 Tkinter 标签文本

Jinku Hu 2023年1月30日
  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()
作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook

相关文章 - Tkinter Label