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.