在使用Entry控件的时候,发现获取控件输入的值都为空,捣鼓了很久,终于发现问题,一定要记录下来!!!

首先放上代码

from tkinter import *

#建立一个窗口
root=Tk()
#设置变量
var_id=StringVar()
var_id.set('')
#在窗口内放入一个输入框
ent= Entry(root,textvariable=var_id).pack()

#获取输入框的内容
dat=var_id.get()

#定义输出函数
def huo():
    print(dat)

#再放入一个按钮,实现点击按钮输入输入框的内容
bt=Button(root,text='buu',command=huo).pack()
root.mainloop()

感觉一切正常对不对 对不对 对不对 好我们运行看

图片说明

能运行!不错!输入abcd,点击按钮

图片说明

这是我点几百下然后没发现有输出然后愤怒的叉掉的输出台

没有报错,没有输出,我。。。。。。

然后我进行代码对比,嗯,发现问题了,我的函数,我的函数,我的函数

dat=var_id.get() 这句,获取输入内容应该放在定义函数里,,这样输出才有结果

#定义输出函数
def huo():
    dat=var_id.get()
    print(dat)

图片说明

我又点了几百下。。。。。