Tkinter 名称错误:名称';帧更改';没有定义

Tkinter 名称错误:名称';帧更改';没有定义,tkinter,frame,tk,nameerror,Tkinter,Frame,Tk,Nameerror,我正在尝试用python编写一个基本密码存储程序,但不确定当单击登录按钮时如何调用“framechange”函数,并出现错误“NameError:name'framechange'未定义” class起始页(tk.Frame): entry=“password” def帧更改(get): 如果entry.get()=“密码”: 控制器。显示画面(“第一页”) 定义初始化(自、父、控制器): tk.Frame.\uuuu init\uuuuu(自,父) self.controller=控制器 la

我正在尝试用python编写一个基本密码存储程序,但不确定当单击登录按钮时如何调用“framechange”函数,并出现错误“NameError:name'framechange'未定义”

class起始页(tk.Frame):
entry=“password”
def帧更改(get):
如果entry.get()=“密码”:
控制器。显示画面(“第一页”)
定义初始化(自、父、控制器):
tk.Frame.\uuuu init\uuuuu(自,父)
self.controller=控制器
label=tk.label(self,text=“欢迎”,font=TITLE\u font)
标签包装(侧面=“顶部”,填充=“x”,pady=10)
self.entry=tk.entry(self)
self.entry.pack(side=“top”,fill=“x”,pady=10,padx=10)
button1=tk.Button(self,text=“Login”,command=lambda:framechange)
按钮1.pack()


非常感谢
如果没有
(self)
作为第一个参数,framechange
就不是该类的方法

def framechange(self, get)

另外,您确定需要
lambda
?您应该能够传递framechange函数本身,lambda用于动态定义fcn。

我修改的代码是
entry=“password”def framechange(self,get):if self.entry.get()=“password”:controller.show_frame(“PageOne”)
button1=tk.Button(self,text=“Login”,command=self.framechange)
我现在收到错误消息TypeError:framechange()缺少一个必需的位置参数:“get”,如果framechange接受一个参数(我认为不应该,因为您从未使用过它),那么您必须调用该函数并传入一个参数。在您的代码片段中,“get”从未在framechange中使用。您使用entry.get,但这是不同的。尝试删除get作为一个参数,但保留self。IE def framechange(self)您还需要将条目称为self.entry,否则它会投诉