如何更改 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