tkinter中每个组件都有的一个宝藏方法——after ,这个方法可将代码执行得像异步一样,根本作用是在一段时间后调用一个函数
widget.after(时长ms,回调函数)
但如果组件反复调用after方法就会有定时调用的效果,所以我进一步整理,写了一个tkinter的定时调用与演示调用的对象、
class Timer:
"""定时调用与延时调用"""
def __init__(s):
pass
def setInterval(s,obj,timeout=1000,fun=lambda :0):
"""
obj:tkinter对象
timeout:间隔时间,单位为ms
fun:执行函数
该方法用于给obj添加定时器
"""
s.timeout=timeout
s.obj=obj
s.fun=fun
s.timer=s.obj.after(s.timeout,s.inner)
def inner(s):
s.timer=s.obj.after(s.timeout,s.inner)
s.fun()
def clearInterval(s):
"""为本定时器所绑定对象删除定时器"""
s.obj.after_cancel(s.timer)
def setTimeout(s,obj,timeout=1000,fun=lambda :0):
"""
obj:tk对象
timeout:延时时长(ms)
fun:回调函数
"""
s.obj2=obj
s.timeout2=timeout
s.timer2=s.obj2.after(s.timeout2,fun)
return s.timer2
def clearTimeout(s):
s.obj2.after_cancel(s.timer2)
顺便说一下,我写了一个蔡徐坤游戏的网站,有兴趣可以看看点击这里,有很多有意思的东西