2017-02-28 83 views
1

當我創建一個subwindow (toplevel)時,我無法單擊關閉主窗口。我一定要點擊交叉和OK多達times(+1)我叫功能有關:Tkinter - 爲什麼我必須在窗口關閉之前點擊十字架

import tkMessageBox 
from Tkinter import * 


def cross(): 
    if tkMessageBox.askokcancel(u"Quit ATTA Convertor ?", "Are you sure you want to close the window ?"): 
     mainwin.quit() 

def about(): 
    subwin = Toplevel(mainwin) 
    subwin.mainloop() 

mainwin = Tk() 
mainwin.protocol("WM_DELETE_WINDOW", cross) 

mainMenu = Menu(mainwin) 
mainMenu.add_command(label="about...", command=about) 
mainwin.config(menu=mainMenu) 

mainwin.mainloop() 

回答

1

這是因爲你叫mainloop()兩次。刪除呼叫subwin.mainloop(),你不需要它。恰當的tkinter程序應該只需撥打mainloop()一次。

0

您正在運行2個主循環事件。您應該刪除about()方法中的一個。

def about(): 
    subwin = Toplevel(mainwin) 
    #subwin.mainloop() <- Remove this 
+1

是的,解決了!非常感謝你 :) – Cokotunel

相關問題