【发布时间】:2013-07-10 11:34:39
【问题描述】:
我在更新打印在画布上的倒数计时器文本时遇到了一些问题。我当前的代码留下了文本应该为空白的区域。
我试过把它放在不同的地方,但它们都没有效果或与我上面描述的效果相同。删除canvas.delete 函数只会导致新时间被写在旧时间之上。
这是我当前的代码:
def cdtimerr():
global cdtimer
cdtimer -= 1
cdtext = canvas.create_text(510, 6, text=cdtimer, font="Ubuntu 29 bold", anchor = NW)
if cdtimer == 0 :
canvas.delete(ALL)
scorescreen()
else:
canvas.after(1000, cdtimerr)
canvas.after(1000, canvas.delete(cdtext))
另外,如果我按下画布上的退出按钮加载另一个屏幕,我将如何过早终止计时器?目前,如果我加载另一个屏幕,计时器仍会继续。
【问题讨论】:
-
您的代码示例中的缩进搞砸了。所有这些代码都是
cdtimer的一部分,还是其中一些在全局范围内? -
我认为它在我将它复制到我的问题后搞砸了,因为它缩进正确并且在 pydev 中工作。虽然现在修复它,但之前没有注意到它。
标签: python tkinter overwrite tkinter-canvas