在GUI循环中运行一个周期性任务

时间:2018-02-18 04:39:37

标签: python-2.7 tkinter scheduler python-multithreading que

我正在运行GUI,显示一些按钮。

top = Tkinter.Tk()
top.title('Interfaz')
B = Tkinter.Button(top, text ="name1", command = name1)
B.grid(row=0, column=0)
C = Tkinter.Button(top, text ="name 2", command = name 2)
C.grid(row=0, column=1)
D = Tkinter.Button(top, text ="name 3", command = name 3)
D.grid(row=0, column=2)
E = Tkinter.Button(top, text ="name 4", command = name 4)
E.grid(row=1, column=0)
F = Tkinter.Button(top, text ="name 5", command = name 5)
F.grid(row=1, column=1)
top.mainloop()

我想做的只是在同一个py文件中安排一个函数来运行每小时,所以,我找到了这个

Python periodic task inside an infinite loop

所以我刚添加了这一行并且它可以正常工作

threading.Timer(3600, name1).start()

但我想做的是使用这段代码我改编自我在本网站上看到的另一个问题。

scheduler = BlockingScheduler()
scheduler.add_job(name1, 'interval', minutes=50)
scheduler.start()

但如果我把它放在GUI循环中,GUI就会停止显示,而只是调度程序工作。

1 个答案:

答案 0 :(得分:0)

我刚看到一个解决方案,所以我将把它留在这里。

我使用调度程序代码

定义了一个函数
def tarea():
scheduler = BlockingScheduler()
scheduler.add_job(correoMinjus, 'interval', minutes=60)
scheduler.start()

然后我立即使用这样的线程。

thread.start_new_thread (tarea,())

这就是我想做的事情