Python tkinter开发中全局变量拼接Entry输入值无法生效问题咨询
Tkinter全局变量拼接Entry输入内容不生效问题说明
根因
全局变量Hello的赋值逻辑会在程序启动、界面初始化完成后立刻执行,此时用户尚未在输入框中输入任何内容,entry.get()获取到的是空值,Hello的取值会被固定为Hello !。后续点击按钮时只会调用提前生成的固定值,不会重新读取输入框的最新输入内容,因此无法展示预期效果。
修复方案
将读取输入框、拼接字符串的逻辑放到点击事件函数内部,保证每次点击按钮时都能获取到输入框的最新内容,示例代码如下:
from tkinter import * root = Tk() root.title("Problems") root.geometry("1080x720") root.config(bg="blue") entry = Entry(root,bg="purple",fg="black") entry.pack() def click(): Hello = "Hello " + entry.get() + "!" myLabel = Label(root, text = Hello) myLabel.pack() Button = Button(root,text="enter your name",command=click,bg="Black",fg="white") Button.pack() root.mainloop()
补充说明
你之前测试可行的两种写法本质都是将字符串拼接逻辑放在点击事件触发后执行,此时已经能获取到用户的输入内容,因此可以正常运行。
内容的提问来源于stack exchange,提问作者Rath Rilm
相关产品推荐
相关产品推荐

