将用户定义的代码集成到 Tkinter 的事件循环中可能是一个挑战。在这种情况下,新手程序员遇到了 Tkinter 主导事件循环的问题,导致鸟群模拟无法连续执行。
为了解决这个问题,Tk 对象提供了一个强大的方法:after。该方法的语法如下:
def after(self, ms, func=None, *args): """Call function once after given time. MS specifies the time in milliseconds. FUNC gives the function which shall be called. Additional parameters are given as parameters to the function call. Return identifier to cancel scheduling with after_cancel."""
通过使用 after,您可以安排函数在指定的时间间隔后执行。下面是一个示例:
from tkinter import * root = Tk() def task(): print("hello") root.after(2000, task) # reschedule event in 2 seconds root.after(2000, task) root.mainloop()
在此示例中,任务函数计划在 Tkinter 事件循环中每 2 秒运行一次。 mainloop 函数确保 Tkinter 在计划任务执行时继续处理事件。
该解决方案提供了一种可靠且简单的方法来与 Tkinter 的事件循环一起运行外部代码,消除了对复杂的多线程概念的需要,并避免了 hackish “按住按钮”方法。
以上是如何与 Tkinter 的事件循环同时运行外部代码?的详细内容。更多信息请关注PHP中文网其他相关文章!