This question already has an answer here:
-
Making a countdown timer with Python and Tkinter?
1 answer
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.
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.