Zegar w tkinter

Stronę tą wyświetlono już: 258 razy

Wywoływanie jakiejś funkcji lub metody klasy w programie co określony przybliżony odstęp czasu jest jednym z ważniejszych i przydatniejszych elementów programowania. Przydatniejszych, ponieważ za pomocą (ogólnie rzecz ujmując) zegara można stworzyć animację w programie. Oto przykład prościutkiego programu, którego jedynym celem jest wyświetlanie czasu na ekranie.

Listing 1
  1. import tkinter as tk
  2. import datetime as dt # dla obsługi daty i czasu
  3. class Application:
  4. def __init__(self):
  5. self.window = tk.Tk()
  6. self.window.geometry("300x40")
  7. self.lb_clock = tk.Label(self.window, font = ("Times New Roman", 20))
  8. self.lb_clock.pack()
  9. self.timer() # pierwsze wywołanie metody timer
  10. self.window.mainloop()
  11. def timer(self):
  12. self.lb_clock.config(text = str(dt.datetime.now().time()).split(".")[0]) # poberanie czasu
  13. self.window.after(1000, self.timer) # ustawienie kolejnego wywołania metody timer
  14. apl = Application()

Spójrzmy łaskawym okiem na linijkę 18 gdzie zamknięty został cały jakże nieskomplikowany mechanizm wywołania metody timer. Jest tutaj użyta metoda after, która z kolei przyjmuje dwa argumenty: pierwszy to czas w milisekundach, po którym ma być wywołana metoda klasy lub funkcja podana jako argument drugi tejże metody.

Okno programu wykorzystujące wywołanie danej funkcji za pomocą metody after w języku programowania Python z wykorzystaniem modułu tkinter
Rys. 1
Okno programu wykorzystujące wywołanie danej funkcji za pomocą metody after

Komentarze