我希望在一段时间后继续更新程序(使用time.sleep(0.1)),并在每1秒延迟一次之后(使用.after())调用某个函数。这样做有可能吗?下面是代码的一部分,我只需要添加.after(),我不知道它应该放在哪里,因为在while循环中编写它不会给出预期的结果。
while True:
draw()
time.sleep(0.1)
win.update()
发布于 2021-01-14 23:45:53
您可以同时使用after
和sleep
,但它们将各自执行文档中所述的操作。sleep
将使程序休眠,之后将在给定时间段后的某个时间运行作业。如果程序处于休眠状态,它将无法处理事件队列,因此在程序停止休眠之前,after
安排的作业将无法运行。
例如,如果先执行root.after(1000, something)
,然后执行time.sleep(5)
,则程序将休眠5秒,然后在唤醒时将运行something
。
一般来说,您永远不应该在图形用户界面程序的主线程中调用time.sleep
。
https://stackoverflow.com/questions/65721822
复制相似问题