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