十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用定时器做,1秒钟唤醒一次响应函数,不要用延时函数 sleep
成都创新互联专业为企业提供长安网站建设、长安做网站、长安网站设计、长安网站制作等企业网站建设、网页设计与制作、长安企业网站模板建站服务,十余年长安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
# 定义时间显示
self.timer = QtCore.QTimer(self)
self.timer.timeout.connect(self.act_displayTM) #绑定响应函数
self.timer.setInterval(1000) #设置时间间隔
self.timer.start()
# 定时响应事件对应逻辑
def act_displayTM(self):
s_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
self.ui.label_Date.setText(s_time)
return
1 if __name__ == "__main__": 2 Q_w = 0 3 w = TimerMask(howtime=0.8) 4 print("-") 5 w.start() 6 #这里线程输出这些,做其他事情的 7 while True: 8 time.sleep(0.4) #0.4秒 9 print("- ",Q_w," - WMask:",w) 10 Q_w += 1 11 pa
输出:
于是你可能会想问,那岂不是每个不同的行为都要写一个继承了BaseTimer的类来做事呢,其实不然,你可以写个函数调用的TimerFunc类:
1 class TimerFunc(BaseTimer): 2 """可传递任何函数的定时任务类""" 3 def __init__(self,func,howtime=1.0,enduring=True): 4 BaseTimer.__init__(self,howtime,enduring) 5 self.func = func 6 7 def exec(self): 8 self.func() #调用函数 9 10 #使用方法: 11 def doing(): 12 print("Hello") 13 14 w = TimerFunc(doing) 15 w.start()
输出:"Hello",并且会每隔1秒执行一次
是不是觉得可以做一堆事情了?你可以自由发挥,继承BaseTimer类
1 w = TimerFunc(doing,5,False) #这样就可以定义延迟5秒使用了~ 2 w.start()
大概看了看网上关于定时器的使用,里面有各种模块的使用,感觉写的五花八门。
自己都尝试了一遍,有能单独用的也有不是我想要的,索性自己定义一个,查阅到datatime函数正好符合我的需要。
程序流程:
1.设定工作开始和结束时间(24小时制)
2.获取当前时间: timestamp = datetime.datetime.now().time()
3.判断获取的当前时间是否在设定的时间内,定义DoWork函数工作
4.若不在则不工作
使用流程:
1.判断是否在定义工作允许运行期间(由于返回是不工作故需要设定休息时间)
2.设定休息时间,time.sleep按秒计算