我有一个Tkinter应用程序,因为我有不同的页面,所以我在那里为我的框架创建了许多类。我还为我的数据创建了一些类来帮助管理它。我想添加一个"后退按钮"来显示前一帧。为此,在我的主窗口类中,我创建了一个后退按钮,并为其分配了一个函数。每次我更改帧时,我都会更改主帧的一个参数:上一帧和当前帧。这些变量存储框架对象本身。下面是一个例子(来自数据类函数,fen是主窗口(:
fen.projView.forget()
fen.precedent = fen.projView
###
self.comView = CommandeFrame(fen,self)
self.comView.grid(column=1,row=0,sticky='nwse',padx=10,pady=10)
fen.actuel = self.comView
这是我的后台功能:
def retour(self):
self.actuel.forget()
self.precedent.grid(column=1,row=0,sticky='nwse',padx=10,pady=10)
self.actuel,self.precedent = self.precedent,self.actuel
我试着打印"先例"one_answers"实际"的值,得到正确的框架。但出于某种原因,它们实际上不会在窗口内更改,按下按钮只会交换它们,而不是在交换之前隐藏一个并显示另一个。(我也尝试过没有交换,得到了相同的结果(
有人知道为什么会这样吗?
因此,多亏了@acw1668,答案只是用.grid_forget()
替换.forget()
。然而,我在剩下的代码中仍然使用forget()
,没有问题。