blog.furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Zegar czyli odliczanie czasu w Pyglet

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import pyglet
import datetime

# stworzenie okna
window = pyglet.window.Window(300,100, caption='Pyglet Clock')

# stworzenie napisu, które będzie rysowany na środku okna 
# dzięki anchor_x, anchor_y, window.width/2, window.height/2 
current_time = pyglet.text.Label('--:--:--', 
                          font_name='Times New Roman', 
                          font_size=36,
                          anchor_x='center',
                          anchor_y='center',
                          x=window.width/2,
                          y=window.height/2,
                        )

# przypisanie do okna funkcji, która będzie rysować obiekty w oknie
# (funkcja musi się nazywać `on_draw()` )
@window.event
def on_draw():

    # wyczyszczenie całego okna
    window.clear() # obowiazkowe dla image.blit ale nie wymagane dla sprite.draw

    # narysowanie napisu
    current_time.draw()


# funkcja zmieniająca zawartość napisu na aktualny czas 
# (ale bez odrysowania zmiany w oknie)
def update_time(dt):
    current_time.text = datetime.datetime.now().strftime('%H:%M:%S')

# przypisanie, że funkcja `update_time` będzie wywoływana co 1 sekundę    
pyglet.clock.schedule_interval(update_time, 1)

# uruchomienie głównej funkcji, która zajmie się wywoływaniem `on_draw()`
# oraz `update_time()` w odpowiednich momentach
pyglet.app.run()
Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury