2017-04-11 90 views
0

我的問題是,我有一個在tkinter中繪製的圖形繪製一些地圖和信息,該部分工程很好,但是當我嘗試用X按鈕關閉程序窗口中,進程仍在運行,我必須用stop按鈕來終止進程,因爲他們推薦在CMD中運行,我在windows上執行了它,並檢查任務管理器,並在關閉程序後繼續進行,我能做些什麼來解決這個問題? 這裏是劇本的結構:也許這個問題已經隨着劇情做按tkinter上的退出按鈕後無法完成處理

#This is some figure where i plot the maps 
#marco de imagen principal 
f = plt.figure(figsize=(3,3)) 
axe = f.add_subplot(111) 
#axe = f.add_subplot(111) 
#plt.axis('off') 
axe.format_coord = lambda x, y: '' 

#marco de ploteo de mapa 
figu=plt.Figure(figsize=(2,2)) 
#ploteo=figu.add_subplot(111) 
ploteo=figu.add_axes([0, 0, 1, 1]) 
ploteo.format_coord = lambda x, y: '' 
plt.axis('off') 


Class Inicio(tk.Tk): 
    def __init__(self, *args, **kwargs): 
    #I initialize all the menu, labels, variables and canvas and some other functions 

    def libro(self): 

    def onpress(self,event): 
    . 
    . 
    . 
    and more funtions 


ex = Inicio() 
ex.geometry("1280x720") 

ex.mainloop() 

+0

我無法在Windows 7,Python 2.7上重現該問題。也許這個問題是由於你的'Inicio'班的某些事情造成的。或者它可能是一個硬件特定的錯誤? (http://stackoverflow.com/questions/39601107/python-tkinter-window-not-closing) – Josselin

+0

mmm我不認爲是一個具體的錯誤,我已經嘗試在Ubuntu和Windows上,問題仍然存在。感謝無論如何:) – Ivan

回答

0

你有沒有試過包括一個協議來處理關閉X按鈕?

import tkMessageBox as tmb 

def __init__(self, *args, **kwargs): 
    # All your stuff 
    self.protocol('WM_DELETE_WINDOW', self.close_app) 

def close_app(self): 
    if tmb.askokcancel("Close", "Are you sure...?"): 
     self.destroy() 

這假定self.destroy()通過ex.mainloop(),因爲它是你的最通話應用到您的root使用TKinter框架。由ex.mainloop()創建的框架上的self.destroy()也將結束mainloop()以及root

+0

謝謝,我遵循你的指示,但仍然繼續在背景上,但後來我改變'self.destroy()''退出()',並完美地工作! – Ivan