2013-02-03 169 views
-1

对于初学者,我正在使用别人的代码。Tkinter窗口操作

在这段代码中,它打开一个初始的tkinter窗口,用户输入一些信息并按下一个按钮。然后打开另一个tkinter窗口,询问用户名和密码。用户提供信用并按下确定按钮。

这一切都很好,除了子窗口,用户名密码窗口,不关闭。

我一直在黑客上几个小时,挫折一直是我唯一的成果。

我已经能够关闭子窗口与销毁,但杀死了整个应用程序。

任何想法?

+1

您可以提供一个* short *独立代码片段来演示此行为吗? – danodonovan

+0

好的,下面是链接到原始脚本。从我收集的信息来看,主窗口是3022行,而我无法关闭的窗口是2044行,作者评论是2154行 – user30772

+0

http://pastebin.com/WHLSvE68 – user30772

回答

1

如果子窗口是tk.Toplevel,那么就可以通过具有ok按钮来调用destroy方法关闭:

import Tkinter as tk 


class Child(object): 
    def __init__(self, master=None): 
     self.master = master 
     window = tk.Toplevel(master) 
     close_button = tk.Button(
      window, text='OK/Close', command=window.destroy) 
     close_button.pack(side=tk.LEFT, padx=5, pady=5) 


class MainApp(object): 
    def __init__(self, master=None): 
     self.master = master 
     close_button = tk.Button(master, text='Child window', 
           command=Child) 
     close_button.pack(side=tk.BOTTOM, padx=5, pady=5) 

root = tk.Tk() 
app = MainApp(root) 
root.mainloop() 
+0

我是现在看这个... – user30772

0

我不知道什么时候正是你想要关闭该窗口,但如果该窗口根本不需要,您可以使用Window_name.withdraw()