tkiner下如何实现计时

LS让写一个带有计时可以重置的功能,差了CSDN相关的文章,也摘了一段放进去,但是无论如何,计时数字就是不显示,很头秃。
self.timestr = tk.StringVar()
self.timestr.set('0:0')

    self.running = False
    self.starttime = 0.0
    self.elapsendtime = 0.0
    self.timer = None
    
    def update():
        global elapsendtime
        global timestr
        global timer
        self.elapsendtime = time.time()-self.starttime
        self.timestr.set(elapsendtime)
        self.timer = root.after(50,update)
        
    def start():
        global running
        global starttime
        if not running:
            self.starttime = time.time()- self.elapsendtime
            self.running = True
            update()
            pass
    
    def stop():
        global running
        global timer
        if running:
            root.after_cancel(timer)
            self.elapsendtime = time.time()-self.starttime
            self.timestr.set(elapsendtime)
            self.running = False
            pass
    
    def change_reset():
        global elapsendtime
        global timestr
        global starttime
        self.elapsendtime = 0.0
        self.starttime =time.time()
        self.timestr.set(elapsendtime)
              
    
    self.Label4 = tk.Label(self.root,textvariable = self.timestr,
                           font=('黑体',12),fg='#1E90FF')
    self.Label5 = tk.Label(self.root,text='用时',font=('黑体',15),
                           fg='#1E90FF',width=6,height=1)
    self.Label6 = tk.Label(self.root,text='秒',font=('黑体',15),
                           fg='#1E90FF',width=4,height=1) 
     # about the positions
    self.Label4.place(x=180,y=110)
    self.Label5.place(x=130,y=110)
    self.Label6.place(x=210,y=110)
    
    

题主只提供了代码片断,无法运行结果有多种可能,比如有没有在主函数中实例化类对象并调用方法,有没有使用mainloop事件循环等,需要从全部代码中进行排查问题。