我想在一段时间后保持更新程序(使用time.sleep(0.1)),并在每1秒延迟后调用某个函数(使用.after())。这可能吗?下面是代码的一部分,我只需要添加。after(),我不知道它应该去哪里,因为在while循环中编写它并没有给出预期的结果。
while True:
draw()
time.sleep(0.1)
win.update()
您可以同时使用after
和sleep
,但是它们将各自执行文档要求的操作。sleep
将使程序休眠,之后将在给定时间段后的某个时间运行作业。如果程序处于睡眠状态,它不能处理事件队列,因此after
调度的作业不能运行,直到程序停止睡眠。
例如,如果您执行root.after(1000, something)
,然后执行time.sleep(5)
,那么程序将休眠五秒钟,然后当它醒来时,它将运行something
。
作为一般的经验法则,你不应该在GUI程序的主线程中调用time.sleep
。