tkinter .after()函数没有暂停

时间:2017-02-21 05:03:57

标签: python tkinter tkinter-canvas

当我尝试运行我的代码时,一切都会执行但是after函数会立即调用update,尽管我输入了5秒的延迟。除此之外,gui没有显示任何图形。

onConnectionFailed

任何有关解决此问题的帮助或只是一般的python技巧都将非常感激。

1 个答案:

答案 0 :(得分:1)

考虑这行代码:

main.after(5000, functools.partial(update, a)(canvas))

这与此完全相同:

func = functools.partial(update, a)
result = func(canvas)
main.after(5000, result)

为了使after完成其工作,您必须为要调用的函数提供引用。在您的代码中,您实际上是立即调用它,然后将结果传递给after

由于您可以提供after的位置参数,这些参数将传递给您的命令,您可以像这样重写after

main.after(5000, functools.partial(update, a), canvas)

尽管如此,我不太明白为什么你认为自己需要functools.partial。你应该可以将它压缩到这个:

main.after(5000, update, a, canvas)