Tkinter时钟与无限循环崩溃?

时间:2014-02-23 15:48:18

标签: python python-3.x tkinter tk

我正在创建一个名为StringVar的{​​{1}},其中包含时尚time_display的字符串,窗口中的单个标签应该(理论上)反映更新到说3:14:02。但是,当我调用StringVar来检查时间并更新它时,我会在无限循环中崩溃。我所做的其他调整导致没有无限循环,但也没有更新时钟。我做错了什么?

updateTime

1 个答案:

答案 0 :(得分:2)

在以下行中,代码直接调用updateTime;导致递归呼叫。

root.after(500, updateTime(var))
#                         ^   ^

传递函数和参数而不调用它将解决您的问题。

root.after(500, updateTime, var)

或者,您可以使用lambda

root.after(500, lambda: updateTime(var))

BTW,使用time.strftimeupdateTime可以减少:

def updateTime(var):
    var.set(time.strftime('%H:%M:%S'))
    root.after(500, updateTime, var)