如何更改 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()
self.text = tk.StringVar()
self.text.set("Test")

Tkinter 建構函式無法使用類似於字串初始化的方法來初始化字串 StringVar 變數。

我們應該呼叫 set 方法來設定 StringVar 值,例如 self.text = tk.StringVar()

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

Related Articles - Tkinter Label

  • 如何更改 Tkinter 標籤字型大小
  • 如何隱藏、恢復和刪除 Tkinter 控制元件
  • comments powered by Disqus