错误文本输入条目和get()条目输入



在从Tkinter((Entry字段获取值时感到困惑。我有这样的代码。。。

def login():
root_login = Tk()
root_login.title("Login")
root_login.geometry("400x400")
label_text_name = Label(root_login, text="Type mail your :")
label_text_name.pack()
label_text_name.place(x=25, y=50)
label_text_token = Label(root_login, text="Type Pasword :" )
label_text_token.pack()
label_text_token.place(x=58, y=150)
input_text_email = Entry(root_login, width=30)
input_text_email.pack()
input_text_email.place(x=150, y=50)
input_text_token = Entry(root_login, width=30)
input_text_token.pack()
input_text_token.place(x=150, y=150)
e1 = Entry(root_login)
e1.pack()
btn_login = Button(root_login,command=after_login, text="Login", height=1, width=10 )
btn_login.pack()
btn_login.place(x=50, y=250)
def after_login():
var = e1.get()     
messagebox.showinfo(var1)

但是我犯了一个错误!

var=e1.get((名称错误:名称"e1"未定义

这是因为after_login函数不知道e1是什么,因为它是在函数范围之外定义的。你必须修改你的代码,也许可以通过将变量设置为全局(如果操作不正确,可能会导致其他问题(,或者通过其他方式让after_login知道什么是e1(也许将其作为参数可以解决这个问题?(

Jimpsoni,我放入了一个全局vatable,如下所示:

def login():
root_login = Tk()
root_login.title("Login")
root_login.geometry("400x400")
label_text_name = Label(root_login, text="Type mail your :")
label_text_name.pack()
label_text_name.place(x=25, y=50)
label_text_token = Label(root_login, text="Type Pasword :" )
label_text_token.pack()
label_text_token.place(x=58, y=150)
input_text_email = Entry(root_login, width=30)
input_text_email.pack()
input_text_email.place(x=150, y=50)
input_text_token = Entry(root_login, width=30)
input_text_token.pack()
input_text_token.place(x=150, y=150)
global var1
var1 = input_text_token.get()
btn_login = Button(root_login,command=after_login, text="Login", height=1, width=10 )
btn_login.pack()
btn_login.place(x=50, y=250)
def after_login():

messagebox.showinfo(var1)

但现在我犯了这个错误!

global var1
^

缩进错误:未缩进与任何外部缩进级别都不匹配

我找到了答案:

def callback():
print(email.get())
....
..

e = Entry(root, bd=1, textvariable=email, validate="focusout" , validatecommand=callback).grid(column=1, row=1)

最新更新