python定时刷新tkinter界面_Tkinter定时刷新页面或数据

1、说明

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

2、使用方式

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

import tkinter as tk

class Questions(tk.Tk):

def __init__(self, *args, **kw):

super().__init__()

self.wm_title('CSSE1001 Queue')

self.configure(background='white')

self.wm_minsize(1440, 776)                  # 设置窗口最小化大小

self.wm_maxsize(1440, 2800)                 # 设置窗口最大化大小

self.resizable(width=False, height=True)    # 设置窗口宽度不可变,高度可变

self.run()

self.refresh_data()

self.mainloop()

def refresh_data(self):

# 需要刷新数据的操作

# 代码...

self.after(10000, self.refresh_data)   # 这里的10000单位为毫秒

def run(self):

pass

if __name__ == '__main__':

question = Questions()

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

介绍轻量级第三方模块schedule,需要使用 pip install schedule导入才能使用

使用时功能相对于crontab

import schedule

import time

def job():

print("I'm working...")

schedule.every(10).minutes.do(job)              # 每隔10分钟执行一次任务

schedule.every().hour.do(job)                   # 每隔一小时执行一次任务

schedule.every().day.at("10:30").do(job)        # 每天10:30执行一次任务

schedule.every(5).to(10).days.do(job)           # 每5-10天执行一次任务

schedule.every().monday.do(job)                 # 每周一的这个时候执行一次任务

schedule.every().wednesday.at("13:15").do(job)  # 每周三13:15执行一次任务

while True:

schedule.run_pending()

time.sleep(1)

————————————————

版权声明:本文为CSDN博主「码码更快乐」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/u012089823/article/details/83009900

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值