我正在tkinter中制作一个GUI应用程序,我需要一个函数中的代码才能每60秒运行一次。我尝试使用root.after(root, function)
暂停,但是使用此暂停时,我的GUI窗口冻结,并且当我中断root.mainloop()
时,函数中的代码继续运行。这是我遇到问题的一些代码:
def start():
global go
go=1
while go == 1:
getclass()
root.after(1000,func=None)
def stop():
global go
go=0
def getclass():
#my code here
print("Hello World")
我只希望getclass()
每按一次开始按钮即可运行60秒。然后,我希望在按下停止按钮时停止60秒循环。
预先感谢您, 肖恩
答案 0 :(得分:0)
您太想这个了:所需的内容非常简单,也许像这样:
def start():
getclass()
root.after(60000, start) # <-- 60,000 milliseconds = 60 seconds
调用start()
时,它将执行对getClass()
的调用,然后设置一个回调函数,该回调函数将在60秒内再次调用自身。
展示使用情况的最小应用程序:
import tkinter as tk
def getclass():
print('hello')
def start():
getclass()
root.after(60000, start) # <-- 60,000 milliseconds = 60 seconds
root = tk.Tk()
start()
root.mainloop()