如何更新 Tkinter 按鈕文字
在本教程中,我們將介紹如何更改 Tkinter 按鈕文字。它類似於更改 Tkinter 標籤文字的方法,
StringVar
方法- 按鈕
text
屬性方法
使用 StringVar
更改 Tkinter 按鈕文字
StringVar
是建立 Tkinter 字串變數的 Tkinter 建構函式的一種。
在將 StringVar
變數關聯到 Tkinter Button
按鈕控制元件之後,當變數被修改時,Tkinter 將更新此 Button
按鈕的文字。
import tkinter as tk
class Test():
def __init__(self):
self.root = tk.Tk()
self.root.geometry("250x100")
self.text = tk.StringVar()
self.text.set("Original Text")
self.buttonA = tk.Button(self.root, textvariable=self.text)
self.buttonB = tk.Button(self.root,
text="Click to change text",
command=self.changeText)
self.buttonA.pack(side=tk.LEFT)
self.buttonB.pack(side=tk.RIGHT)
self.root.mainloop()
def changeText(self):
self.text.set("Updated Text")
app=Test()
self.text = tk.StringVar()
self.text.set("Original Text")
Tkinter 建構函式無法使用諸如 self.text = tk.StringVar()
之類的字串來初始化字串變數。
我們應該呼叫 set 方法來設定 StringVar
值,就像 self.text.set("Original Text")
一樣。
self.buttonA = tk.Button(self.root, textvariable=self.text)
將 StringVar
變數 self.text
分配給 self.buttonA
的選項 textvariable
。如果修改了 self.text
,Tkinter 將自動更新 self.buttonA
的文字。
Tkinter Button
按鈕的 text
屬性改變按鈕的文字
更改 Tkinter 按鈕文字的另一種方法是更改按鈕的 text
屬性。
import tkinter as tk
class Test():
def __init__(self):
self.root = tk.Tk()
self.root.geometry("250x100")
self.buttonA = tk.Button(self.root,
text="Original Text")
self.buttonB = tk.Button(self.root,
text="Click to change text",
command=self.changeText)
self.buttonA.pack(side=tk.LEFT)
self.buttonB.pack(side=tk.RIGHT)
self.root.mainloop()
def changeText(self):
self.buttonA['text'] = "Updated Text"
app=Test()
text
是 Tkinter 按鈕物件的一個鍵,其文字可以通過 text="Original Text"
來初始化,也可以通過將新值分配給 text
來進行更新。
tk.Button.configure()
方法還可以更改 text 屬性,以更改 Tkinter Button 的文字,如下所示。
import tkinter as tk
class Test():
def __init__(self):
self.root = tk.Tk()
self.root.geometry("250x100")
self.buttonA = tk.Button(self.root,
text="Original Text")
self.buttonB = tk.Button(self.root,
text="Click to change text",
command=self.changeText)
self.buttonA.pack(side=tk.LEFT)
self.buttonB.pack(side=tk.RIGHT)
self.root.mainloop()
def changeText(self):
self.buttonA.configure(text = "Updated Text")
app=Test()
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