2013-02-03 230 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()