1 回答
TA贡献1850条经验 获得超11个赞
问题是因为username和password变量在主块中,当您运行代码时,输入框是空的(最初)分配''给变量。因此,为了克服这个问题,您应该在函数内部分配变量,现在只采用填充的输入框的值。
代码:
from tkinter import *
from tkinter import messagebox
login_page = Tk()
login_page.title("login_page")
login_page.geometry("250x110")
def check_pass():
username = log_name.get()
userpass = log_pass.get()
if username == name and userpass == password:
messagebox.showinfo('Successfull','Login successfull')
else:
choice = messagebox.askretrycancel("Try again","Wrong password ")
if choice == True:
pass
else:
login_page.destroy()
......
# ALL THE SAME LINES OF CODE TILL
name = "admin"
password = "admin"
login_page.mainloop()
此外,由于您使用的是消息框askretrycancel,因此您可以根据用户的选择执行某些操作。所以在这里我说了如果用户点击重试,然后要求他们重新登录,否则关闭应用程序。您可以将其更改为您喜欢的任何内容(甚至也可以删除它。)
并且还建议说login_page.mainloop(),这样 tkinter 就不会在以后的任何步骤中感到困惑。
希望你的“错误”被清除,如果有任何错误请告诉我 :D
添加回答
举报