![](/img/trans.png)
[英]How to fix “TypeError: fit() missing 1 required positional argument: 'X'” error
[英]I dont know how to fix this error: TypeError: authenticate_name() missing 1 required positional argument: 'eUsername'
这是我的整个代码:
import tkinter as tk
from tkinter import *
import turtle
file = open("usernames.txt", "r+")
file2 = open("passwords.txt", "r+")
def mainScreen():
mainScreen = Tk()
mainScreen.geometry("250x175")
mainScreen.title("Login Screen")
Label(text = "Please select an option.").pack()
Label(text = "").pack()
Button(text = "Login into an existing account.", command = login).pack()
Label(text = "").pack()
Button(text = "Create a new account.").pack()
mainScreen.mainloop()
def login():
loginScreen = Tk()
loginScreen.geometry("200x150")
loginScreen.title("Existing Account Login")
Label(loginScreen,text = "Please enter your username.").pack()
eUserName = StringVar()
userEntry = Entry(loginScreen, textvariable = eUserName)
userEntry.pack()
eUserName = userEntry.get()
Label(loginScreen,text = "Please enter your pasword.").pack()
ePassWord = StringVar()
passEntry = Entry(loginScreen, textvariable = ePassWord)
passEntry.pack()
ePassWord = passEntry.get()
Label(text="").pack()
Button(loginScreen, text = "Click to login.", command = authenticate_name).pack()
return ePassWord, eUserName
def authenticate_name(eUsername):
usernames = []
validCheck = False
for line in file:
usernames.append(line)
for eUserName in usernames:
if eUserName in usernames:
validCheck = True
pass
else:
tkMessageBox.showerror("Invalid Username!", "This usernames is invalid!")
exit()
def authenticate_password():
passwords = []
for line in file2:
passwords.append(line)
for count in range(len(passwords)):
count += 1
if ePassWord in passwords:
game()
else:
tkMessageBox.showerror("Invalid Password!", "This password is incorrect!")
mainScreen()
我得到的错误如下:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Vlad\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
TypeError: authenticate_name() missing 1 required positional argument: 'eUsername'
我不知道如何解决这个问题。 我试过在eUsername
上做一个str()
函数,但没有看到工作。 任何帮助将不胜感激!
您错误地使用了(Python 3)tkinter 的许多功能,包括StringVar
、 messagebox
、顶级窗口等。 通过使您的StringVar
变量成为全局变量,并重新设计您的逻辑,我得出了与您的近似值'正在尝试实施:
from tkinter import *
from tkinter import messagebox
def mainScreen():
Label(text="Please select an option.").pack()
Label(text="").pack()
Button(text="Login into an existing account.", command=login).pack()
Label(text="").pack()
Button(text="Create a new account.").pack()
def login():
loginScreen = Toplevel(root)
loginScreen.geometry("200x150")
loginScreen.title("Existing Account Login")
Label(loginScreen, text="Please enter your username.").pack()
Entry(loginScreen, textvariable=eUserName).pack()
Label(loginScreen, text="Please enter your password.").pack()
Entry(loginScreen, textvariable=ePassWord).pack()
Label(text="").pack()
Button(loginScreen, text="Click to login.", command=authenticate_name).pack()
def authenticate_name():
with open("usernames.txt") as file:
for username in file:
if eUserName.get() == username.strip():
authenticate_password()
return
messagebox.showerror("Invalid Username!", "This username is invalid!")
exit()
def authenticate_password():
with open("passwords.txt") as file:
for password in file:
if ePassWord.get() == password.strip():
game()
return
messagebox.showerror("Invalid Password!", "This password is incorrect!")
exit()
def game():
messagebox.showinfo("You're In!", "The game has begun!")
root = Tk()
root.geometry("250x175")
root.title("Login Screen")
eUserName = StringVar()
ePassWord = StringVar()
mainScreen()
root.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.