Tkinter: Użycie after() do wyświetlania czasu
Używajac
root.after(milliseconds, callback)
można uruchomić funkcję z opoźnieniem.
Można to wykorzystać do wyświetlannia aktualnego czasu
import tkinter as tk
import time
# --- function ---
def update_timer():
timer['text'] = time.strftime('%H:%M:%S')
root.after(1000, update_timer) # run again after 1000ms = 1s
# --- main ---
root = tk.Tk()
timer = tk.Label(root, width=10)
timer.pack()
update_timer() # run first time
root.mainloop()
You can also used it for countdown time Można także używać do odliczania czasu w dół
import tkinter as tk
import time
# --- function ---
def update_timer():
global timer_time
#timer['text'] = time.strftime('%H:%M:%S')
timer['text'] = str(timer_time)
timer_time -= 1
if timer_time >= 0:
root.after(500, update_timer) # 1000ms = 1s
else:
timer['text'] = 'Boom!'
# --- main ---
timer_time = 10
root = tk.Tk()
timer = tk.Label(root, width=10)
timer.pack()
update_timer()
root.mainloop()
callback
oznacza nazwę funkcji bez ()
i bez argumentów. Aby wykonywać funkcję z argumentami można używać
root.after(milliseconds, callback, arg1, arg2, ...)
import tkinter as tk
import time
# --- function ---
def update_timer(widget, number):
widget['text'] = str(number)
number -= 1
if number >= 0:
root.after(1000, update_timer, widget, number) # 1000ms = 1s
else:
widget['text'] = 'Boom!'
# --- main ---
root = tk.Tk()
timer1 = tk.Label(root, width=10)
timer1.pack()
timer2 = tk.Label(root, width=10)
timer2.pack()
update_timer(timer1, 5)
update_timer(timer2, 10)
root.mainloop()
If you like it
Buy a Coffee
Buy a Coffee