弑天下
根据Tkinter活动,结束esp。当使用Tkinter.after时,destroy()即使使用protocol(),按钮等停止此活动- 将干扰此活动(“执行时”错误)而不是仅仅终止它。几乎在所有情况下,最好的解决方案是使用标志。这是一个如何使用它的简单,愚蠢的例子(虽然我确信你们大多数人都不需要它!:)from Tkinter import *def close_window():
global running
running = False
print "Window closed"root = Tk()root.protocol("WM_DELETE_WINDOW", close_window)cv = Canvas(root, width=200, height=200); cv.pack()running = True;# This is an endless loop stopped only by setting 'running' to 'False'while running:
for i in range(200):
if not running: break
cv.create_oval(i,i,i+1,i+1); root.update()这很好地终止了图形活动。您只需要running在正确的地方检查。