【问题标题】:Runnin a periodic task inside a GUI loop [duplicate]在 GUI 循环内运行定期任务 [重复]
【发布时间】:2018-07-28 15:30:50
【问题描述】:

我有一个 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 将停止出现,而只有调度程序工作。

【问题讨论】:

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


【解决方案1】:

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

我用调度器代码定义了一个函数

def tarea():
scheduler = BlockingScheduler()
scheduler.add_job(correoMinjus, 'interval', minutes=60)
scheduler.start()

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

thread.start_new_thread (tarea,())

这正是我想做的事

【讨论】:

  • 这比它需要的更复杂。 Tkinter 提供了一种调度周期性任务的方法:after。这个网站上有很多例子。
  • 谢谢,我去看看
猜你喜欢
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多