带有GUI

时间:2016-03-09 18:14:57

标签: python timer tkinter

我在使用Python制作Raspberry Pi的倒计时时钟时出现问题。我需要倒计时时钟从60分钟开始倒计时。当时间用完时,它应显示红色文字“GAME OVER”。

我已经使用TKinter和for循环为实际计时器做了一个,但我找不到任何方法来阻止for循环。我放弃了。

有没有人可以写出实际的计时器和计时器停止部分?我对python和TKinter做得很好,可以做我需要的所有其他事情。

1 个答案:

答案 0 :(得分:0)

我建议使用generators来处理你的for循环并提供一个最小的示例但是在StackOverflow上没有人会“编写实际计时器和计时器停止部分“(见What topics can I ask here

请注意,这是我在发布此问题之前的示例,并认为这对您有所帮助。

import tkinter as tk

def run_timer():
    for time in range(60):
        label["text"] = time #update GUI here
        yield #wait until next() is called on generator

root = tk.Tk()

label = tk.Label()
label.grid()

gen = run_timer() #start generator
def update_timer():
    try:
        next(gen)
    except StopIteration:
        pass #don't call root.after since the generator is finished
    else:
        root.after(1000,update_timer) #1000 ms, 1 second so it actually does a minute instead of an hour

update_timer() #update first time

root.mainloop()

你仍然需要自己弄明白如何实现after_cancel()来阻止它以及红色的“GAME OVER”文本。