基本上,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()
startwindow()是一个函数,它定义窗口小部件及其在屏幕上的位置,看起来工作得非常好。我肯定问题出在这一点上,但我不知道具体是什么。我尝试将窗口小部件的状态更改为正常,因为前面的函数禁用了它们,但这似乎不起作用。我也尝试过在主框架上使用grid-forget,但是同样的,这只留下了与我交互的小部件,比如说,textEntryIndiv
和OpenButtonIndiv
-在屏幕上可见,其余的都消失了。
如果有人知道这件事,我将非常感谢你的帮助。如果需要的话,我可以提供更多的代码,但是有很多,这就是为什么我没有在这里放很多代码。
编辑/更新:
没关系。似乎在我什么都没做的情况下就修复了它自己-非常字面地说,它的工作没有我对代码做任何更改。现在我觉得发这个有点不必要了。哦,好吧。
grid_forget
是一种方法。当你像self.textEntryIndiv.grid_forget
那样调用它时,你不是在调用方法,你只是在请求一个引用。你需要像self.textEntryIndiv.grid_forget()
那样调用它(注意后面的()
)相关问题 更多 >
编程相关推荐