User manual
77
Deze regel tekent de secondewijzer als rode lijn met een breedte van
2 pixels, vanuit het middelpunt 180
pixels lang in een hoek, die door de secondewaarde wordt aangegeven.
s1 = s Nu wordt de zojuist weergegeven seconde in de variabele s1 opgeslagen, om deze waarde in de
volgende lusdoorlopen met de actuele seconde te vergelijken.
pygame.display.set_caption("Actuele tijd: " +
time.asctime())
Deze tijd schrijft de actuele tijd in digitale vorm in het schermonderwerp. Hiervoor wordt de functie
time.asctime() uit de time-bibliotheek gebruikt, die de tijdsaanduiding als voltooid geformatteerde
tekenketting levert.
pygame.display.update() Tot nu toe zijn alle grafische elementen alleen virtueel getekend. Pas in deze
regel wordt de grafische weergave getekend. Het bijwerken gebeurt gelijktijdig. Daarom ziet men ook geen
flikkeren bij het na elkaar tekenen van de losse wijzers.
for event in pygame.event.get():
if event.type == QUIT or (event.type ==
KEYUP and event.key == K_ESCAPE):
mainloop = False
Nog altijd binnen de if-vraag, en dus een keer per seconden, gebeurt de relatief vermogensverbruikende
vraag over eventuele systeemgebeurtenissen, waarmee hier wordt vastgesteld, of de gebruiker binnen de
laatste seconde het klokscherm wilde sluiten of op de
[Esc]-toets heeft gedrukt. Is dit het geval, wordt de
variabele
mainloop naar False gezet, en hiermee wordt de lus niet nog een keer gestart.
pygame.quit() De laatste regel beëindigt vervolgens de PyGame-module, waardoor tevens het grafische
scherm sluit en daarna het volledige programma.
10 Grafische dialoogvelden voor de programmabesturing
Geen enkel modern programma, dat op enigerlei wijze een interactie met de gebruiker vereist, loopt in
zuivere tekstmodus. Overal zijn grafische interfaces, waarop men buttons kan aanklikken, in plaats van
invoer via het toetsenbord te moeten uitvoeren.
Python zelf biedt geen grafische interfaces voor programma, heeft heeft echter meerdere externe modules,
overeenkomstig de al beschreven PyGame, die er speciaal voor zijn, grafische interfaces te creëren. Een van
de meest bekende dergelijke module is
Tkinter
, die de grafische interface
Tk
, die ook voor veel andere
programmeertalen kan worden gebruikt, beschikbaar maakt voor Python.
De structuren van de grafische toolkit Tk verschillen enigszins van Python en zien er op het eerste gezicht een
beetje apart uit. Daarom beginnen we met een eenvoudig voorbeeld. Een LED moet via buttons in een
dialoogveld worden aan- en uitgeschakeld.