Error: login() missing 1 required positional argument

Error: login() missing 1 required positional argument

我尝试使用 tkinter 编写登录页面代码,但出现错误。这是我的代码:

from tkinter import *

def register(event):
    screen1 = Toplevel(screen)
    screen1.title("Register")
    screen1.geometry("320x250")
    username =StringVar()
    password =StringVar()
    contact  =StringVar()
    email    =StringVar()
    Label(screen1,text="Please enter your details below").pack()
    Label(screen1,text="Username").pack()
    Entry(screen1,textvariable = username)
    Label(screen1,text="Contact").pack()
    Entry(screen1, textvariable=contact)
    Label(screen1, text="Email id").pack()
    Entry(screen1, textvariable=email)
    Label(screen1, text="Password").pack()
    Entry(screen1, textvariable=password)
    Button(screen1, text="Register", width=10, height=1).pack()

def login(event):
    screen2 = Toplevel(screen)
    screen2.title("Register")
    screen2.geometry("320x250")
    username = StringVar()
    password = StringVar()
    Label(screen2, text="Username").pack()
    Entry(screen2, textvariable=username)
    Label(screen2, text="Password").pack()
    Entry(screen2, textvariable=password)
    Button(screen2, text="Login", width=10, height=1).pack()

def main_screen():
    global screen
    screen = Tk()     #creating tk window
    screen.geometry("320x250")
    screen.title= ("notes 1.0")
    Label(screen,text="").pack()
    Button(screen,text="Login",height="2", width="30",command=login).pack()
    Label(screen,text="").pack()
    Button(screen,text="Register",height="2", width="30",command=register).pack()
    screen.mainloop()
main_screen()

我收到这个错误:

Traceback (most recent call last):
  File "C:\Users\Matrena\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
TypeError: register() missing 1 required positional argument: 'event'
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Matrena\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
TypeError: login() missing 1 required positional argument: 'event'

这里。首先,您不应该将 event 传递给 register()login() 函数。如果使用 .bind() 函数,则必须使用事件,否则会报错。

这是您的代码:

from tkinter import *
screen = Tk()     #creating tk window
screen.geometry("320x250")
screen.title("notes 1.0")
Label(screen,text="").pack()
def login():
    screen2 = Toplevel()
    screen2.title("Register")
    screen2.geometry("320x250")
    username = StringVar()
    password = StringVar()
    Label(screen2, text="Username").pack()
    Entry(screen2, textvariable=username)
    Label(screen2, text="Password").pack()
    Entry(screen2, textvariable=password)
    Button(screen2, text="Login", width=10, height=1).pack()
def register():
    screen1 = Toplevel(screen)
    screen1.title("Register")
    screen1.geometry("320x250")
    username =StringVar()
    password =StringVar()
    contact  =StringVar()
    email    =StringVar()
    Label(screen1,text="Please enter your details below").pack()
    Label(screen1,text="Username").pack()
    Entry(screen1,textvariable = username)
    Label(screen1,text="Contact").pack()
    Entry(screen1, textvariable=contact)
    Label(screen1, text="Email id").pack()
    Entry(screen1, textvariable=email)
    Label(screen1, text="Password").pack()
    Entry(screen1, textvariable=password)
    Button(screen1, text="Register", width=10, height=1).pack()
Button(screen,text="Login",height="2", width="30",command = login).pack()
Label(screen,text="").pack()
Button(screen,text="Register",height="2", width="30",command=register).pack()




screen.mainloop()

不过,我注意到该项目尚未完成,所以如果您希望我完成它,请联系我!!

希望对您有所帮助!