Python 日志屏幕错误

我的tkinter登录屏幕应用程序有一个错误,即当我单击登录按钮时它只显示错误。


from tkinter import *

from tkinter import messagebox



login_page = Tk()

login_page.title("login_page")

login_page.geometry("250x110")


def check_pass():

    if username == name and userpass == password:

        print("this code works")

    else :

        messagebox.askretrycancel(title="Try again",message="Wrong password ")




# name and password entry

log_name = Entry(login_page)

log_name.grid(row=0, column=1, pady=15)

log_pass = Entry(login_page)

log_pass.grid(row=1, column=1, pady=5)

name_label = Label(login_page, text="Name here:- ")

name_label.grid(row=0, column=0, pady=15)

password_label = Label(login_page, text="Password:- ")

password_label.grid(row=1, column=0, pady=5)


# LOG IN BUTTON

login_btn = Button(login_page, text="LOG IN", command=check_pass)

login_btn.grid(row=2, column=0, columnspan=2, ipadx=100, padx=5)


username = log_name.get()

userpass = log_pass.get()

name = "admin"

password= "admin"



mainloop()


慕桂英4014372
浏览 101回答 1
1回答

慕盖茨4494581

问题是因为username和password变量在主块中,当您运行代码时,输入框是空的(最初)分配''给变量。因此,为了克服这个问题,您应该在函数内部分配变量,现在只采用填充的输入框的值。代码:from tkinter import *from tkinter import messageboxlogin_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 TILLname = "admin"password = "admin"login_page.mainloop()此外,由于您使用的是消息框askretrycancel,因此您可以根据用户的选择执行某些操作。所以在这里我说了如果用户点击重试,然后要求他们重新登录,否则关闭应用程序。您可以将其更改为您喜欢的任何内容(甚至也可以删除它。)并且还建议说login_page.mainloop(),这样 tkinter 就不会在以后的任何步骤中感到困惑。希望你的“错误”被清除,如果有任何错误请告诉我 :D
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python