Python 方法在作为事件处理程序寻址时运行
我正在学习Tkinter,我对编程相当陌生 我试图创建一个包含框架的窗口,其中包含一个按钮,该按钮删除包含该按钮的框架。这是我到目前为止写的:Python 方法在作为事件处理程序寻址时运行,python,events,user-interface,tkinter,Python,Events,User Interface,Tkinter,我正在学习Tkinter,我对编程相当陌生 我试图创建一个包含框架的窗口,其中包含一个按钮,该按钮删除包含该按钮的框架。这是我到目前为止写的: class Menu(Frame): def __init__(self, master): super(Menu, self).__init__(master) self.pack() self.create_bttn() def create_bttn(self): s
class Menu(Frame):
def __init__(self, master):
super(Menu, self).__init__(master)
self.pack()
self.create_bttn()
def create_bttn(self):
self.b1 = Button(self, text ="Instruktioner")
self.b1["command"] = self.instructions()
self.b1.pack()
def instructions(self):
self.pack_forget()
这段代码似乎创建了框架和按钮,然后再次删除它们,而无需我调用instructions方法!我不明白为什么以及如何避免这种情况。我非常感谢你的帮助。你自己别说了
self.b1["command"] = self.instructions
当您实例化
菜单
对象时,它调用create_bttn()
,最后一个方法调用self.instructions()
。您可能需要修改以下某些行:
self.b1["command"] = self.instructions()
或者在说明
方法中
self.pack_forget()
编辑
试着换掉这个
self.b1["command"] = self.instructions()
与
是的,instructions方法正在运行,但是我如何在仍然使用instructions作为事件处理程序的情况下避免这种情况?我对Tkinter不太了解,但请尝试以下方法:
self.b1[“command”]=self.instructions
without()。如果此答案对您有帮助,请将其标记为正确答案。因此,如果其他人有同样的问题,他可以看到这个答案来解决它。
self.b1["command"] = self.instructions # without ()