2014-12-15 2 views
0

Я попытался найти решение проблемы, но не смог найти ее. Я использую python27 на Windows 7.Как закончить Tkinter, если не использовать кнопку «Выход»

У меня есть простой Tkinter GUI с помощью кнопки:

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() 

Теперь, если я использую кнопку Quit программа закрывается и не является задача слева от программы. Проблема в том, что кто-то использует X-Button для закрытия Windows или для примеров использует Alt + F4, задача все еще запущена. Для последующего использования я замораживаю скрипт для создания исполняемого файла, и если кто-то использует какой-либо метод для закрытия программы, кроме кнопки «Выход», задача все еще выполняется. И если задача все еще запущена, он или она не могут снова открыть программу, потому что она все еще работает в фоновом режиме, и Windows вызывает ошибку, по которой программа все еще работает.

Я попытался добавить некоторые команды после mainloop, но все они игнорируются. Как я могу решить эту проблему?

Благодарим за помощь! Макс.

ответ

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