检查是否使用Tkinter AFTER安排了任何方法

时间:2012-11-03 19:06:49

标签: python tkinter

如何检查Tkinger AFTER方法是否安排了任何方法?我有一个方法在画布上随机创建给定数量的正方形(使用AFTER方法计划),另一个方法删除正在单击的正方形(此方法基本上是每个正方形的事件处理程序。)最后一个删除在一定时间后没有被点击的方块(如2secs),并且它是使用AFTER方法的时间表。我喜欢做的是显示一个消息框,仅当从画布中绘制并删除所有给定数量的正方形时才显示消息。由于有时候所有的方块都被移除了,但是仍然很少有一些方格要被绘制,因此使用find_all方法根本不起作用。如果我使用变量内部绘制方法并将其减小到0,则在显示方块之前它会减小到零,并且消息框会在错误的时间出现。所以我正在寻找一种方法来确定是否还有任何方法可以在AFTER方法列表中执行。

1 个答案:

答案 0 :(得分:1)

我不知道是否可以使用Tkinter方法,但是,您可以直接使用Tk找到此类信息widget.tk.call('after', 'info')返回after待处理订阅列表。

这是一个完整的例子

import Tkinter

def foo():
    print "foo"

root = Tkinter.Tk()
root.after(1000, foo)
#>u'after#0'
root.after(1000, foo)
#>u'after#1'
root.tk.call('after', 'info')
#>'after#1 after#0'