如何在python中使用类函数隐藏按钮
问题在于这一行:如何在python中使用类函数隐藏按钮,python,tkinter,Python,Tkinter,问题在于这一行: Traceback (most recent call last): File "N:\HW\Hexahexaflexagon generator.py", line 94, in <module> make_GUI() File "N:\HW\Hexahexaflexagon generator.py", line 63, in make_GUI quit_butt.go_away() File "N:\HW\H
Traceback (most recent call last):
File "N:\HW\Hexahexaflexagon generator.py", line 94, in <module>
make_GUI()
File "N:\HW\Hexahexaflexagon generator.py", line 63, in make_GUI
quit_butt.go_away()
File "N:\HW\Hexahexaflexagon generator.py", line 51, in go_away
self.button.grid_forget()
AttributeError: 'function' object has no attribute 'grid_forget'
您正在重新定义self
,从引用当前对象改为引用其他对象。再往下看,标签也有同样的问题。这根本不是python的工作方式
您必须将小部件存储为self
上的属性,而不是self
本身
self = Button(root)
完成此操作后,您可以使用grid\u忘记隐藏按钮或标签,因为您正在使用grid
使其可见:
self.button = Button(root)
...
self.label = Label(root)
还有一个问题是,您将命令作为字符串传递。这不会像你想象的那样起作用。如果希望能够传入函数,它需要是对实际函数的引用:
self.button.grid_forget()
请修复“不可靠的缩进”,作为提供一个实际显示问题的缩进的一部分。修复了它,对不起,我只是想快速提问。你能改为正确提问吗?请提供完整的回溯,并将代码减少到所需的最低限度。修复了您的问题您希望self=Button(root)
做什么self.button
是创建该按钮的方法,而不是按钮本身-尝试将其重命名为例如def create_button
以使其更清晰。非常感谢!现在这很有意义,我知道字符串函数text quit_按钮,只是每当按钮被创建时,命令就会运行并销毁root,所以我将其设置为text,以便程序运行,我可以稍后修复它
self.button.grid_forget()
quit_butt.button("Exit",root.destroy,[0,1])