我的问题是我在tkinter中创建了一个GUI,它绘制了一些地图和信息,这部分工作正常,但是当我尝试用窗口的X按钮关闭程序时,该过程仍在运行,我有使用停止按钮终止进程,因为他们建议在CMD中运行读取in this question,我在Windows上执行它并检查任务管理器,关闭程序后进程仍然继续,我该怎么做才能解决这个问题? 这是脚本的结构:
#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 :(得分: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()
通过root
应用于您的ex.mainloop()
TKinter框架,因为它是您最外层的电话。 self.destroy()
创建的框架上的ex.mainloop()
也将结束mainloop()
的{{1}}。