基本上,Tkinter中的grid_forget()方法似乎只适用于我的程序中的一些小部件,而不适用于其他部件。当我按下“重新启动”按钮时,我想让屏幕清除,然后再次出现开始的小部件,就好像用户已关闭并重新打开程序一样。Tkinter中grid_forget的问题 - Python
不幸的是,当我按下按钮时,一些小部件消失,一些小部件消失。我在所有这些方法上都使用了grid_forget()方法,所以我不太确定问题是什么。看起来,那些保持可见的是我在程序运行时与之交互的那些 - 例如,一个入口小部件和一个按钮。我找不到任何详细说明这个问题的在线文档,所以我想我会寻求帮助。
我的代码(或至少,它的“重新启动”按钮位)低于:
def RetryButtonClick(self):
"""Note to self: this needs to be fixed"""
self.labelvar.set("")
self.textvar1.set("")
self.textvar2.set("")
self.LabelIndiv.config(state=NORMAL)
self.LabelIndiv.grid_forget
self.textEntryIndiv.config(text="", state=NORMAL)
self.textEntryIndiv.grid_forget
self.FirstEntry.config(state=NORMAL)
self.FirstEntry.grid_forget
self.LastLabelB.config(state=NORMAL)
self.LastLabelB.grid_forget
self.ImportAll.config(state=NORMAL)
self.ImportAll.grid_forget
self.OpenButtonIndiv.config(state=NORMAL)
self.OpenButtonIndiv.grid_forget
self.OpenButtonBatch.config(state=NORMAL)
self.OpenButtonBatch.grid_forget
self.RetryButton.grid_forget
self.Label3.config(text="")
self.Label5.config(text="")
#self.master.grid_forget()
self.startwindow()
self.startwindow()是定义小部件和它们在屏幕上的位置和该功能似乎工作得很好。我肯定这个问题一定是在这一点上,但我对于到底是什么感到不知所措。我尝试将状态更改为正常的小部件,因为之前的功能会禁用它们,但这似乎不起作用。我也尝试在主框架self.master
上使用grid_forget,但同样只剩下我与之交互的小部件 - 例如,textEntryIndiv
和OpenButtonIndiv
- 在屏幕上可见,其余部分消失。
如果有人对此有任何意见,我会非常感谢您的帮助。如果需要,我可以提供更多的代码,但是这里有很多,所以我没有把它放在这里。
编辑/更新:
没关系。似乎已经修复了自己,但实际上并没有做任何事情 - 从字面上看,它的工作没有对代码做任何更改。现在我觉得发布这是不必要的。好吧。