2024-04-25 09:36:05 发布
网友
我正在写一个物理模拟程序,发现after()很有用。在
after()
我曾经想为物理计算和模拟创建一个线程。但当我最终注意到这个函数时,我就用了它。在
所以,我很好奇Tkinter是如何实现这个功能的。是多线程吗?在
它不是多线程的。在
Tkinter的工作原理是将对象从队列中拉出并进行处理。通常这个队列中的事件是由用户生成的(鼠标移动、按钮单击等)。在
此队列可以包含其他内容,例如使用after创建的作业。因此,对Tkinter来说,用after提交的内容只是在特定时间点要处理的另一个事件。在
after
以下脚本将冻结GUI 5秒,因此它不是多线程的:
from Tkinter import Tk, Label from time import sleep root = Tk() w = Label(root, text="Hello, world!") w.pack() w.after(100, lambda: sleep(5)) root.mainloop()
它不是多线程的。在
Tkinter的工作原理是将对象从队列中拉出并进行处理。通常这个队列中的事件是由用户生成的(鼠标移动、按钮单击等)。在
此队列可以包含其他内容,例如使用
after
创建的作业。因此,对Tkinter来说,用after
提交的内容只是在特定时间点要处理的另一个事件。在以下脚本将冻结GUI 5秒,因此它不是多线程的:
相关问题 更多 >
编程相关推荐