基本上,似乎Tkinter中的grid_forget()方法仅适用于程序中的某些小部件而不适用于其他小部件。当我按下“重启”按钮时,我希望屏幕清除,然后再次出现启动小部件,就像用户已关闭并重新打开程序一样。
不幸的是,当我按下按钮时,一些小部件消失了,有些小部件则没有。我在所有这些方法上使用了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
- 在屏幕上可见 - 其余他们应该消失了。
如果有人对此有任何想法,我会非常感谢你的帮助。如果需要的话,我可以提供更多的代码,但是有很多代码,这就是为什么我没有把这些代码放在这里。
EDIT / UPDATE:
没关系。似乎在没有我实际做任何事情的情况下修复了自己 - 实际上,它的工作没有我对代码进行任何更改。现在我觉得发布这个是不必要的。哦,好吧。
答案 0 :(得分:5)
grid_forget
是一种方法。当你像self.textEntryIndiv.grid_forget
那样调用它而不是调用方法时,你只是要求引用。您需要将其称为self.textEntryIndiv.grid_forget()
(请注意尾随()
)