如何在Tkinter的事件循环旁边运行自己的代码?我弟弟刚开始编程,为了他的科学博览会项目,他正在模拟天空中的一群鸟。他的大部分代码都已经写好了,而且运行得很好,但是鸟儿需要移动每时每刻.然而,Tkinter占用了它自己的事件循环的时间,所以他的代码无法运行。做root.mainloop()运行,并继续运行,它只运行事件处理程序。是否有一种方法可以让他的代码与main循环一起运行(没有多线程,这是令人困惑的,这应该保持简单),如果是的话,是什么呢?现在,他想出了一个丑陋的黑客,把他的move()功能<b1-motion>,因此,只要他按住按钮,摇动鼠标,它就能工作。但一定有更好的办法。
6 回答
![?](http://img1.sycdn.imooc.com/5458626a0001503602200220-100-100.jpg)
HUH函数
TA贡献1836条经验 获得超4个赞
after
Tk
from tkinter import *root = Tk()def task(): print("hello") root.after(2000, task) # reschedule event in 2 secondsroot.after(2000, task)root.mainloop()
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."""
![?](http://img1.sycdn.imooc.com/5333a1920001d36402200220-100-100.jpg)
绝地无双
TA贡献1946条经验 获得超4个赞
update
mainloop
def task(): # do something root.update()while 1: task()
添加回答
举报
0/150
提交
取消