我的GUI上有一个按钮,可以启动一个具有while循环的进程,因为它是一个基于时间工作的时间表。但是,单击按钮后,GUI将挂起,但实际程序仍在后台运行。
def start(root, period=0):
schedule.every(float(delay)).hours.do(start)
while True:
schedule.run_pending()
root.after(30000, print("WAITING 30 SECONDS..."))
我希望能够在后台循环进行时继续使用菜单。
你不应该使用这样的无限循环。相反,请使用after
按计划呼叫run_pending
。
例如,如果要每 30 秒轮询一次挂起的事件,它可能如下所示:
def start(root, period=0):
schedule.every(float(delay)).hours.do(start))
poll_schedule(schedule)
def poll_schedule(root, schedule)
schedule.run_pending()
print("WAITING 30 SECONDS...")
root.after(30000, poll_schedule, root, schedule)