【发布时间】:2021-10-16 15:20:40
【问题描述】:
我是 Python 和 tkinter 的新手。下面我做了一个非常简短的程序,其中 Tkinter GUI 中的标签应该每 10 秒更新一次。可惜它没有这样做。
有人能解释一下为什么不请吗?另外,如果我点击右上角的小“x”,程序不会像预期的那样干净地停止。
from tkinter import *
import time
root = Tk()
root.title("P2Server")
var = StringVar()
label = Label( root, textvariable = var)
var.set("This is the start string - should be overwritten every 10 secs")
label.pack()
def startProcess():
UPDATE_PERIOD = 10 #seconds
startTime = time.time();
cntr = 1
while True:
print("Loop " + str(cntr))
var.set("Loop " + str(cntr))
label.pack()
cntr = cntr + 1
time.sleep(UPDATE_PERIOD - ((time.time() - startTime) % UPDATE_PERIOD))
root.after(100, startProcess)
root.mainloop()
【问题讨论】: