关闭后,Tkinter子窗口无法重新打开

时间:2012-06-18 19:55:42

标签: python tkinter window

这很难解释,所以我会尽我所能。

我有一个主程序窗口,其中有一个名为“备份/恢复”的按钮。按此按钮打开一个新窗口,其中有两个按钮可供选择; “备份还原”。按下其中任何一个按钮将打开第三个窗口,其中包含有关执行操作的信息。第一次运行“备份”或“恢复”时,一切都很好。如果我用它上面的两个按钮关闭第二个窗口;然后按下主窗口中的“备份/恢复”按钮,它将带有两个按钮的第二个窗口按原样返回,但标记为“备份”和“恢复”的按钮在单击时不执行任何操作。第二个窗口关闭一次后,第三个窗口上的按钮仅失去其功能。

创建窗口时,我使用代码:

def exportEFS(self): #this is the second window with two buttons
  self.exportGUI = Toplevel()

  Button(self.exportGUI, text='Backup', command=self.backup).pack(padx=100,pady=5)
  Button(self.exportGUI, text='Restore', command=self.restore).pack(padx=100,pady=5

def backup(self): #this is the backup window that does not work if the second window has     
                   been closed once.
  self.backup = Toplevel()
  <button code>

def restore(self): #this is the backup window that does not work if the second window has     
                   been closed once.
  self.restore = Toplevel()
  <button code>

主窗口的代码太大而无法发布,我不确定是否有任何部分会有所帮助。

1 个答案:

答案 0 :(得分:3)

...调用Toplevel窗口的函数(&#34; def backup(self):&#34;)与Toplevel窗口本身同名(&#34; self.backup = Toplevel() &#34;),这可能是问题的原因。 与&#34;恢复&#34;相同选项。

我有这样的事情,我改名后一切都好。