如何在按下按钮时更改 Tkinter 标签文本
How to change Tkinter label text on button press
我有这段代码,它的目的是在按下项目按钮时更改 Instruction
标签的文本。它不是出于某种原因,我不完全确定为什么。我已尝试在 press()
函数中创建另一个按钮,其名称和参数相同,但文本不同。
import tkinter
import Theme
import Info
Tk = tkinter.Tk()
message = 'Not pressed.'
#Sets window Options
Tk.wm_title(Info.Title)
Tk.resizable(width='FALSE', height='FALSE')
Tk.wm_geometry("%dx%d%+d%+d" % (720, 480, 0, 0))
#Method run by item button
def press():
message = 'Button Pressed'
Tk.update()
#item button
item = tkinter.Button(Tk, command=press).pack()
#label
Instruction = tkinter.Label(Tk, text=message, bg=Theme.GUI_hl2, font='size, 20').pack()
#Background
Tk.configure(background=Theme.GUI_bg)
Tk.mainloop()
正在做:
message = 'Button Pressed'
不会影响标签小部件。它所做的只是将全局变量 message
重新分配给一个新值。
要更改标签文本,您可以使用其 .config()
method(也称为 .configure()
):
def press():
Instruction.config(text='Button Pressed')
此外,创建标签时需要单独一行调用pack
方法:
Instruction = tkinter.Label(Tk, text=message, font='size, 20')
Instruction.pack()
否则,Instruction
将分配给 None
,因为这是该方法的 return 值。
您可以将message
设为StringVar
进行回调。
message = tkinter.StringVar()
message.set('Not pressed.')
您需要将 message
设置为 textvariable
for Instruction
:
Instruction = tkinter.Label(Tk, textvariable=message, font='size, 20').pack()
然后
def press():
message.set('Button Pressed')
我有这段代码,它的目的是在按下项目按钮时更改 Instruction
标签的文本。它不是出于某种原因,我不完全确定为什么。我已尝试在 press()
函数中创建另一个按钮,其名称和参数相同,但文本不同。
import tkinter
import Theme
import Info
Tk = tkinter.Tk()
message = 'Not pressed.'
#Sets window Options
Tk.wm_title(Info.Title)
Tk.resizable(width='FALSE', height='FALSE')
Tk.wm_geometry("%dx%d%+d%+d" % (720, 480, 0, 0))
#Method run by item button
def press():
message = 'Button Pressed'
Tk.update()
#item button
item = tkinter.Button(Tk, command=press).pack()
#label
Instruction = tkinter.Label(Tk, text=message, bg=Theme.GUI_hl2, font='size, 20').pack()
#Background
Tk.configure(background=Theme.GUI_bg)
Tk.mainloop()
正在做:
message = 'Button Pressed'
不会影响标签小部件。它所做的只是将全局变量 message
重新分配给一个新值。
要更改标签文本,您可以使用其 .config()
method(也称为 .configure()
):
def press():
Instruction.config(text='Button Pressed')
此外,创建标签时需要单独一行调用pack
方法:
Instruction = tkinter.Label(Tk, text=message, font='size, 20')
Instruction.pack()
否则,Instruction
将分配给 None
,因为这是该方法的 return 值。
您可以将message
设为StringVar
进行回调。
message = tkinter.StringVar()
message.set('Not pressed.')
您需要将 message
设置为 textvariable
for Instruction
:
Instruction = tkinter.Label(Tk, textvariable=message, font='size, 20').pack()
然后
def press():
message.set('Button Pressed')