Instructions
75
Diese Zeile zeichnet den Sekundenzeiger als rote Linie mit einer Breite von
2 Pixeln vom Mittelpunkt aus 180
Pixel lang im Winkel, der durch den Sekundenwert angegeben wird.
s1 = s Jetzt wird die gerade dargestellte Sekunde in der Variablen s1 gespeichert, um diesen Wert in den
nächsten Schleifendurchläufen mit der aktuellen Sekunde zu vergleichen.
pygame.display.set_caption("Aktuelle Zeit: " + time.asctime())
Diese Zeile schreibt die aktuelle Uhrzeit in digitaler Form in den Fenstertitel. Dazu wird die Funktion
time.asctime() aus der time-Bibliothek verwendet, die die Zeitangabe als fertig formatierte Zeichenkette
liefert.
pygame.display.update() Bisher wurden alle Grafikelemente nur virtuell gezeichnet. Erst diese Zeile baut
die Grafikanzeige wirklich neu auf. Die Aktualisierung erfolgt gleichzeitig. Deshalb ist auch keinerlei Flackern
beim Zeichnen der einzelnen Zeiger nacheinander zu sehen.
for event in pygame.event.get():
if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE):
mainloop = False
Immer noch innerhalb der if-Abfrage, also auch nur einmal in der Sekunde, erfolgt die relativ leistungshung-
rige Abfrage eventueller Systemereignisse, mit der hier festgestellt wird, ob der Benutzer innerhalb der letzten
Sekunde das Uhrenfenster schließen wollte oder die
[Esc]-Taste gedrückt hat. Ist das der Fall, wird die Vari-
able
mainloop auf False gesetzt, und damit wird die Schleife kein weiteres Mal gestartet.
pygame.quit() Die letzte Zeile beendet zunächst das PyGame-Modul, was auch das grafische Fenster
schließt und danach das ganze Programm.
10 Grafische Dialogfelder zur Programmsteuerung
Kein modernes Programm, das irgendeine Interaktion mit dem Benutzer erfordert, läuft im reinen Text-
modus. Überall gibt es grafische Oberflächen, auf denen man Buttons anklicken kann, anstatt Eingaben über
die Tastatur vornehmen zu müssen.
Python selbst bietet keine grafischen Oberflächen für Programme, es gibt aber mehrere externe Module,
ähnlich dem schon beschriebenen PyGame, die speziell dafür da sind, grafische Oberflächen zu erstellen.
Eines der bekanntesten derartigen Module ist
Tkinter
, das die grafische Oberfläche
Tk
, die auch für diverse
andere Programmiersprachen genutzt werden kann, für Python verfügbar macht.
Die Strukturen des grafischen Toolkits Tk unterscheiden sich etwas von Python und mögen auf den ersten
Blick ungewöhnlich erscheinen. Deshalb fangen wir mit einem ganz einfachen Beispiel an: Eine LED soll über
Buttons in einem Dialogfeld ein- und ausgeschaltet werden.