0

我尝试使用 对登录页面进行编码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'
4

1 回答 1

0

这里。首先,你不应该传递eventregister()andlogin()函数。如果你使用.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()

不过,我注意到这个项目还没有完成,所以如果你想让我完成它,就联系我吧!!

希望这可以帮助!

于 2020-05-24T18:54:26.853 回答