I am currently working on a project that requires are very simple countdown timer, that works in the tkinter GUI and that dosen't rely on a recursion. I have tried different things but nothing seems to work so far.
import time
from tkinter import *
root = Tk()
root.title("Timer")
root.geometry("100x100")
def countdown(count):
label = Label(root, text= count)
label.place(x=35, y=15)
for i in range(5,0,-1):
countdown(i)
time.sleep(1)
root.mainloop()
You can't use sleep
because it stops mainloop
and program can't work. You can use root.after
to call function after 1000ms (1s)
import tkinter as tk
def countdown(count):
# change text in label
label['text'] = count
if count > 0:
# call countdown again after 1000ms (1s)
root.after(1000, countdown, count-1)
root = tk.Tk()
label = tk.Label(root)
label.place(x=35, y=15)
# call countdown first time
countdown(5)
# root.after(0, countdown, 5)
root.mainloop()