Python countdown clock with GUI [duplicate]

2019-09-30 08:12发布

This question already has an answer here:

I'm having problems with a countdown clock that I was making in Python for a Raspberry Pi. I need to have a countdown clock that counts down from 60 minutes. When time runs out it should display a red text "GAME OVER".

I've already made one using TKinter and a for loop for the actual timer but I couldn't find any way to stop the for loop. I gave up on it.

Is there anyone nice enough to maybe write the actual timer and timer stopping part? I'm good enough at python and TKinter to do everything else that I need.

1条回答
SAY GOODBYE
2楼-- · 2019-09-30 08:50

I'd recommend using generators to handle your for loop and will provide a minimal example but on StackOverflow no one is going to "write the actual timer and timer stopping part" (see What topics can I ask here)

Note this is an example I had before this question was posted and thought it would be helpful to you.

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()

you will still need to figure out for yourself how to implement after_cancel() to stop it and the red "GAME OVER" text.

查看更多
登录 后发表回答