如何更新 Tkinter 按钮文本
Jinku Hu
2024年2月15日
在本教程中,我们将介绍如何更改 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()
作者: Jinku Hu