Tkinter中的实时时钟显示

时间:2016-03-29 08:36:30

标签: python tkinter

我想使用Tkinter和时间库创建实时时钟。我创建了一个课程,但不知怎的,我无法弄清楚我的问题。

我的代码

from tkinter import *

import time

root = Tk()

class Clock:
    def __init__(self):
        self.time1 = ''
        self.time2 = time.strftime('%H:%M:%S')
        self.mFrame = Frame()
        self.mFrame.pack(side=TOP,expand=YES,fill=X)
        self.watch = Label (self.mFrame, text=self.time2, font=('times',12,'bold'))
        self.watch.pack()
        self.watch.after(200,self.time2)

obj1 = Clock()
root.mainloop()

1 个答案:

答案 0 :(得分:2)

after()的第二个参数应该是function - 当你给予任何 - 但是你给的是str个对象。因此,您收到了错误。

from tkinter import *    
import time

root = Tk()

class Clock:
    def __init__(self):
        self.time1 = ''
        self.time2 = time.strftime('%H:%M:%S')
        self.mFrame = Frame()
        self.mFrame.pack(side=TOP,expand=YES,fill=X)

        self.watch = Label(self.mFrame, text=self.time2, font=('times',12,'bold'))
        self.watch.pack()

        self.changeLabel() #first call it manually

    def changeLabel(self): 
        self.time2 = time.strftime('%H:%M:%S')
        self.watch.configure(text=self.time2)
        self.mFrame.after(200, self.changeLabel) #it'll call itself continuously

obj1 = Clock()
root.mainloop()

另请注意:

  

每次调用此方法时,只会调用一次回调。保持   调用回调,你需要在里面重新注册回调   本身。