当我单击登录按钮时,我的消息框不会显示。我没有收到语法错误,所以不确定如何解决。我尝试进行测试,以查看在程序启动时调用消息框是否可以正常工作。所以我猜想这与代码的位置有关。
from tkinter import*
from tkinter import messagebox
class Login_system:
def __init__(self,root):
self.root=root
self.root.title("Login system")
self.root.geometry("1350x700+0+0")
title=Label(self.root,text="Login system",font=("ariel",40,"bold"),bg="black",fg="white")
title.place(x=0)
title.place(x=0,y=0,relwidth=1)
self.uname=StringVar()
self.pass_=StringVar()
Login_Frame=Frame(self.root)
Login_Frame.place(x=400,y=150)
lbluser=Label(Login_Frame,text="Username",compound=LEFT,font=("ariel",20,"bold")).grid(row=1,column=0,padx=20,pady=10)
txtuser=Entry(Login_Frame,bd=5,textvariable=self.uname,relief=GROOVE,font=("",15)).grid(row=1,column=1,padx=20)
lblpass=Label(Login_Frame,text="Password",compound=LEFT,font=("ariel",20,"bold")).grid(row=2,column=0,padx=20,pady=10)
txtpass=Entry(Login_Frame,bd=5,relief=GROOVE,textvariable=self.pass_,font=("",15)).grid(row=2,column=1,padx=20)
btn_log=Button(Login_Frame,text="Login",width=15,font=("ariel",14,"bold"),bg="black",fg="white").grid(row=3,column=1,pady=10)
def login(self):
if self.uname.get()=="" or self.pass_.get()=="":
messagebox.showerror("Error","All fields are required!")
root=Tk()
obj=Login_system(root)
root.mainloop()
'''
通过添加command=self.login
参数将登录功能绑定到您的按钮:
btn_log=Button(Login_Frame, command=self.login, text="Login", width=15, font=("ariel", 14, "bold"), bg="black", fg="white").grid(row=3,column=1,pady=10)