Tkinter-Python中的grid-forget问题

2024-04-25 13:15:08 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,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,但是同样的,这只留下了与我交互的小部件,比如说,textEntryIndivOpenButtonIndiv-在屏幕上可见,其余的都消失了。

如果有人知道这件事,我将非常感谢你的帮助。如果需要的话,我可以提供更多的代码,但是有很多,这就是为什么我没有在这里放很多代码。

编辑/更新:

没关系。似乎在我什么都没做的情况下就修复了它自己-非常字面地说,它的工作没有我对代码做任何更改。现在我觉得发这个有点不必要了。哦,好吧。


Tags: 方法代码textselfconfig屏幕部件按钮