2017-02-28 6 views
1

subwindow (toplevel)を作成すると、メインウィンドウをワンクリックで閉じることができません。私はクロスをクリックする必要があり、約私は関数と呼ばとして多くのtimes(+1)としてOK:あなたが二回mainloop()と呼ばれてきたので、それがあるTkinter - ウィンドウが閉じられる前にクロスを2回クリックする必要がある理由

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

subwin.mainloop()へのコールを削除すると、不要になります。適切なtkinterプログラムは、mainloop()を正確に1回呼び出す必要があります。

0

2つのメインループイベントを実行しています。 about()メソッドのものを削除する必要があります。

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

はい、解決済み!どうもありがとうございました :) – Cokotunel

関連する問題