拥有带定时循环的时钟或者有更好的方法是一个好主意吗?

时间:2017-06-22 20:47:45

标签: python tkinter

我有一个时钟,我放在我的GUI程序中。目前我使用.after()来更新时钟。我不确定这种方法是否是最佳选择,我试图找到不同的或更好的解决方案。

我目前处理GUI时钟的方式是最好的方式吗?或者我还能做些什么?

以下是一个例子:

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()

1 个答案:

答案 0 :(得分:2)

你有正确的方法。不过,我认为没有理由每秒拨打5次,但每秒只能改变一次。此外,你还有很多你不需要的额外垃圾。一点清洁:

def status_clock(self):
    self.my_clock.config(text=strftime("%H:%M:%S"))
    self.my_clock.after(1000, self.status_clock)