User manual
Ez a sor megrajzolja a másodpercmutatót egy 2 pixel szélességű, a középponttól vett 180 pixel
hosszúságú piros vonalként, a másodpercérték által megadott szögben.
s1 = s Most az éppen kijelzett másodperc tárolásra kerül az s1 változóban, hogy ezt az értéket a
következő hurokmenetekben össze lehessen hasonlítani az aktuális másodperccel.
Ez a sor digitális alakban kiírja az aktuális pontos időt az ablak címsorába. Ehhez a program a
time.asctime() funkciót alkalmazza a time-könyvtárból, amely az időadatot készre formatált
karaktersorozatként szállítja.
pygame.display.update() Eddig az összes grafikus elem csak virtuálisan került megrajzolásra. Csak
ez a sor építi fel tényleg újra a grafikus megjelenítést. Egyidejűleg a frissítés is megtörténik.
Emiatt semmiféle villódzás nem látható az egyes mutatók egymást követő felrajzolásakor.
Még mindig az if-lekérdezésen belül, tehát csak másodpercenként egyszer történik meg az
esetleges rendszeresemények viszonylag teljesítményigényes lekérdezése, amellyel itt
megállapítást nyer, hogy a felhasználó az utolsó másodpercen belül be akarta-e zárni az
óraablakot, vagy megnyomta-e az
[Esc]-gombot. Ha ez történt, a mainloop változó a False értéket
kapja meg, és ennek következtében a hurok nem kapcsolódik be még egyszer.
pygame.quit() Az utosó sor először is bezárja a PyGame-modult, ami aztán a grafikus ablakot is
bezárja, majd az egész programot is.
10
Grafikus párbeszédablak a programvezérléshez
Nincs olyan, a felhasználótól interakciót követelő modern program, amely tiszta szöveges
üzemmódban futna. Mindenhol vannak olyan grafikus felületek, amelyeken nyomógombokra
lehet rákattintani a tasztatúrán történő beadás kényszere helyett.
A Python maga nem nyújt grafikus felületeket a programok számára, de van számos külső
modul, hasonlók a már ismertetett PyGame-hez, amelyek éppen grafikus felületek előállítására
valók. Az egyik legismertebb ilyen modul a
Tkinter, amely elérhetővé teszi a Python számára a
Tkgrafikus felületet, amelyet számos más programozási nyelv is használhat.
A Tk grafikus eszköztár struktúrái kissé eltérnek a Pythonétól, és első pillantásra szokatlannak
is tűnhetnek. Ezért egy nagyon egyszerű példával kezdjük: Egy LED-et kell egy
párbeszédablakban nyomógombokkal bekapcsolni és kikapcsolni.
pygame.display.set_caption("Aktuelle Zeit: "
+
time.asctime())
for event in pygame.event.get():
if
event.type
== QUIT
or (event.type
==
KEYUP and
event.key
== K_ESCAPE):
mainloop = False
77