tkinter root.show()不工作

我find了一个在Tkinter中打开和closures窗口的例子,我将根据需要进行编辑。 出现根窗口,单击button,当根窗口消失时出现另一个Toplevel窗口。 当你closures第二个窗口时,根目录应该重新出现。 我用.update()和.deiconify(),但他们没有工作。

代码如下:

import Tkinter as Tk ######################################################################## class OtherFrame(Tk.Toplevel): """""" #---------------------------------------------------------------------- def __init__(self, original): """Constructor""" self.original_frame = original Tk.Toplevel.__init__(self) self.geometry("400x300") self.title("otherFrame") btn = Tk.Button(self, text="Close", command=self.onClose) btn.pack() #---------------------------------------------------------------------- def onClose(self): """""" self.destroy() self.original_frame.show() ######################################################################## class MyApp(object): """""" #---------------------------------------------------------------------- def __init__(self, parent): """Constructor""" self.root = parent self.root.title("Main frame") self.frame = Tk.Frame(parent) self.frame.pack() btn = Tk.Button(self.frame, text="Open Frame", command=self.openFrame) btn.pack() #---------------------------------------------------------------------- def hide(self): """""" self.root.withdraw() #---------------------------------------------------------------------- def openFrame(self): """""" self.hide() subFrame = OtherFrame(self) #---------------------------------------------------------------------- def show(self): """""" self.root.update() self.root.deiconify() #---------------------------------------------------------------------- if __name__ == "__main__": root = Tk.Tk() root.geometry("800x600") app = MyApp(root) root.mainloop()