2014-12-15 5 views
0

내 문제의 해결책을 찾으려고했지만 찾을 수 없습니다. 나는 버튼으로 쉽게 Tkinter의 GUI가 윈도우 7종료 버튼을 사용하지 않을 경우 Tkinter를 종료하는 방법

에 Python27을 사용하고 있습니다 :

import Tkinter 
import sys 

def close_window(): 
    root.destroy() 
    sys.exit() 


root = Tkinter.Tk() 

#exit button 
draw_button = Tkinter.Button(root, text="Quit", command = close_window) 
draw_button.grid(row=1, column=1) 

root.mainloop() 

을 지금은 프로그램이 닫히고 종료 버튼을 사용하여 프로그램의이 왼쪽 작업을하지 않은 경우. 문제는 누군가 X 버튼을 사용하여 Windows를 닫거나 예제에서 Alt + F4를 사용하여 작업이 아직 실행중인 경우입니다. 나중에 사용할 수 있도록 실행 파일을 만들기 위해 스크립트를 고정시키고 일부 메서드를 사용하여 종료 단추를 제외하고 프로그램을 닫으면 작업이 여전히 실행 중입니다. 그리고 작업이 여전히 실행 중이면 프로그램이 백그라운드에서 계속 실행 중이기 때문에 프로그램을 다시 열 수 없으며 Windows는 프로그램이 계속 실행되고 있다는 오류를 발생시킵니다.

메인 루프 다음에 몇 가지 명령을 추가하려고했지만 모두 무시됩니다. 이 문제를 어떻게 해결할 수 있습니까?

도움 주셔서 감사합니다. 최대

답변

3

WM_DELETE_WINDOW을 사용하면 어떨까요? 예 :

import tkinter 
import sys 

def close_window(): 
    root.destroy() 
    sys.exit() 

def win_deleted(): 
    print("closed"); 
    close_window(); 

root = tkinter.Tk() 

#exit button 
draw_button = tkinter.Button(root, text="Quit", command = close_window) 
draw_button.grid(row=1, column=1) 

root.protocol("WM_DELETE_WINDOW", win_deleted) 

root.mainloop() 

이렇게하면 ctr + F4로 앱이 종료됩니다.

+0

완벽! 잘 작동합니다. – Max