我正在创建一个名为StringVar
的{{1}},其中包含时尚time_display
的字符串,窗口中的单个标签应该(理论上)反映更新到说3:14:02
。但是,当我调用StringVar
来检查时间并更新它时,我会在无限循环中崩溃。我所做的其他调整导致没有无限循环,但也没有更新时钟。我做错了什么?
updateTime
答案 0 :(得分:2)
在以下行中,代码直接调用updateTime
;导致递归呼叫。
root.after(500, updateTime(var))
# ^ ^
传递函数和参数而不调用它将解决您的问题。
root.after(500, updateTime, var)
或者,您可以使用lambda
:
root.after(500, lambda: updateTime(var))
BTW,使用time.strftime
,updateTime
可以减少:
def updateTime(var):
var.set(time.strftime('%H:%M:%S'))
root.after(500, updateTime, var)