我有一个时钟放在我的GUI程序中。目前我使用.after()
来更新时钟。我不确定这种方法是否是最佳选择,我试图找到不同的或更好的解决方案。拥有定时循环的时钟或者有更好的方法是一个好主意吗?
是我目前处理我的图形用户界面时钟的最佳方式?或者还有什么我可以做的?
下面是一个例子:
from tkinter import *
from time import strftime
class MiniApp(Frame):
def __init__(self, master, *args, **kwargs):
Frame.__init__(self, master, *args, **kwargs)
self.master = master
self.my_clock = Label(self.master)
self.my_clock.pack()
self.status_clock()
def status_clock(self):
self.my_clock.config(text ="{}".format(strftime("%H:%M:%S")))
self.my_clock.after(1000, lambda: self.status_clock())
if __name__ == "__main__":
root = Tk()
app = MiniApp(root)
root.mainloop()
这是在Tkinter做这种事情的正确方法。 –
@MikeDriscoll:好的。过去我曾被告知,像这样的定时循环可能是一个问题,但它与时钟不同。这就是为什么我担心这是否也是一个问题。 –
如果只显示1秒的分辨率,为什么每秒更新5次?另外,'lambda:self.status_clock()'没有意义,只需使用'after(200,self.status_clock)''。 'lambda'是非常少见的,似乎让很多人感到困惑。 –