python - 如何在按下按钮时更改 Tkinter 标签文本

标签 python button python-3.x tkinter label

我有这段代码,它的目的是在按下项目按钮时更改 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,因为这是该方法的返回值。

关于python - 如何在按下按钮时更改 Tkinter 标签文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29828477/

相关文章:

java - LibGDX 游戏 : Check if button is touched when touchDown is called

python - 为 PyTorch 中的简单神经网络增加训练和测试精度

python-3.x - 有没有办法为 ipywidgets 中的容器设置标题值?

python datetime 去除分秒信息

python - Django:使用子外键获取父数据

angularjs - 如何使用 ui-route 和 angularjs 导航到不同的页面?

python - 字符串列表打印内存位置的映射函数

python - 在 Python 中创建 2D c_types 数组并在 C 函数中使用它

python - 获取数据框中不同 ID 的行值

android - 将默认按钮颜色从灰色更改为白色android