我之前阅读过有关此错误的帖子,但无法确定我做错了什么。请有人帮我理解我做错了什么,谢谢。
from tkinter import *
class Passwordchecker():
def __init__(self):
self= Tk()
self.geometry("200x200")
self.title("Password checker")
self.entry=Entry(self)
self.entry.pack()
self.button=Button(self,text="Enter",command= lambda: self.PassCheck(self.entry,self.label))
self.button.pack()
self.label=Label(self,text="Please a password")
self.label.pack()
self.mainloop()
def PassCheck(self1,self2):
password = self1.get()
if len(password)>=9 and len(password)<=12:
self2.config(text="Password is correct")
else:
self2.config(text="Password is incorrect")
run = Passwordchecker()
答案 0 :(得分:2)
您收到以下错误消息:
AttributeError: '_tkinter.tkapp' object has no attribute 'PassCheck'
因为当初始化Passwordchecker()
的实例时,它会在您mainloop()
的{{1}}方法上遇到麻烦,该方法不允许您的程序识别属于该实例的任何其他方法。根据经验,从不在__init__()
内运行mainloop()
。这完全修复了您上面的错误消息。但是,我们还有其他事情需要解决,为此,让我们重新设计您的计划:
最好采用在__init__()
内调用的其他方法来绘制GUI。我们称之为__init__()
。
说到initialize_user_interface()
,首先需要将对象本身传递给此方法。这意味着传递给此方法的第一个参数是PassCheck()
。这是我们实际需要的唯一参数self
因为您可以从此方法访问您无用地传递给它的剩余参数。
所以这是您需要的完整程序:
PassCheck(self)
以下是正在运行的程序的屏幕截图: