当前位置:   article > 正文

Tkinter定时刷新页面或数据_tkinter 定时更新界面

tkinter 定时更新界面

1、说明

        由于tkinter一旦开始执行进入mainloop,就相当于进入一个界面死循环状态,出不来;如果想做定时刷新tkinter界面的控件数据,必须调用tkinter.TK()自带的after函数,这个函数可以设定定时执行某个任务的时间,使用别的python定时执行任务的模块是不行的。

2、使用方式

       实现一个刷新数据函数调用tkinter.TK()自带的after函数,在调用mainloop函数之前,将这个刷新数据函数调用,则可以实现定时刷新数据功能,参考代码如下:

  1. import tkinter as tk
  2. class Questions(tk.Tk):
  3. def __init__(self, *args, **kw):
  4. super().__init__()
  5. self.wm_title('CSSE1001 Queue')
  6. self.configure(background='white')
  7. self.wm_minsize(1440, 776) # 设置窗口最小化大小
  8. self.wm_maxsize(1440, 2800) # 设置窗口最大化大小
  9. self.resizable(width=False, height=True) # 设置窗口宽度不可变,高度可变
  10. self.run()
  11. self.refresh_data()
  12. self.mainloop()
  13. def refresh_data(self):
  14. # 需要刷新数据的操作
  15. # 代码...
  16. self.after(10000, self.refresh_data) # 这里的10000单位为毫秒
  17. def run(self):
  18. pass
  19. if __name__ == '__main__':
  20. question = Questions()

3、额外补充别的定时执行任务程序

  •  介绍轻量级第三方模块schedule,需要使用 pip install schedule导入才能使用
  • 使用时功能相对于crontab
  1. import schedule
  2. import time
  3. def job():
  4. print("I'm working...")
  5. schedule.every(10).minutes.do(job) # 每隔10分钟执行一次任务
  6. schedule.every().hour.do(job) # 每隔一小时执行一次任务
  7. schedule.every().day.at("10:30").do(job) # 每天10:30执行一次任务
  8. schedule.every(5).to(10).days.do(job) # 每5-10天执行一次任务
  9. schedule.every().monday.do(job) # 每周一的这个时候执行一次任务
  10. schedule.every().wednesday.at("13:15").do(job) # 每周三13:15执行一次任务
  11. while True:
  12. schedule.run_pending()
  13. time.sleep(1)

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/892407
推荐阅读
相关标签
  

闽ICP备14008679号