[英]NameError: name 'username' is not defined in python with tkinter GUI
I get the error I mentioned above for line 28 in the following code.我在下面的代码中收到了上面提到的第 28 行的错误。 I don't know what the problem is at all.我根本不知道问题是什么。 Any help appreciated, this is the code:任何帮助表示赞赏,这是代码:
#26/4/2020 28/4/2020 30/4/2020
def sign_in_clicked():
username = username_entry.get()
password = password_entry.get()
username_entry.delete(0, END)
password_entry.delete(0, END)
from tkinter import *
sign_in = Tk()
sign_in.title("Sign in")
sign_in_label = Label(sign_in,text="Please Sign In!").grid(row=0, column=0, columnspan=2, sticky=W)
username_label = Label(sign_in,text="Username:").grid(row=1, column=0, sticky=W)
password_label = Label(sign_in,text="password:").grid(row=2, column=0, sticky=W)
username_entry = Entry(sign_in, width=20, bg="gray70")
username_entry.grid(row=1, column=1, sticky=W)
password_entry = Entry(sign_in, width=20, bg="gray70")
password_entry.grid(row=2, column=1, sticky=W)
sign_in_button = Button(sign_in, text="Sign In", width=25, command=sign_in_clicked).grid(row=3, column=0, columnspan=2, sticky=W)
output_text = Text(sign_in, width=23, height=6, wrap=WORD, background="DarkOrchid1")
output_text.grid(row=6, column=0, columnspan=2, sticky=W)
if username=="1" and password=="2":
output_text.insert(END, "hi")
sign_in.mainloop()
Variables username
and password
are not defined.变量username
和password
未定义。
if username=="1" and password=="2": #here you are referencing non-existant variables
output_text.insert(END, "hi")
You only create username
and password
in a function;您只在 function 中创建username
和password
; they are not available outside this function.它们在此 function 之外不可用。
You may want to use username_entry.get()
and password_entry.get()
.您可能想要使用username_entry.get()
和password_entry.get()
。
you should write:你应该写:
def sign_in_clicked():
global username,password
username = username_entry.get()
password = password_entry.get()
username_entry.delete(0, END)
password_entry.delete(0, END)
i think that this will help, if not try to learn more about the global declaration.我认为这将有所帮助,如果不尝试更多地了解全球宣言。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.