User manual

86
else:
for i in range(w):
for j in range(4):
GPIO.output(LED[3-j], True); time.sleep(t)
GPIO.output(LED[3-j], False)
Het derde geval is gelijk aan het eerste, met als verschil, dat de LED's achteruit worden geteld en hierdoor
het looplicht in omgekeerde richting loopt.
Nadat de functie is gedefinieerd, worden de elementen van de grafische oppervlakken gecreƫerd.
Label(root,
text="Klik op de button, om het looplicht te
starten").pack()
De tekst van het dialoogveld wordt weer als Label-object gedefinieerd. De definitie van de drie radiobuttons
is nieuw.
for txt, m in voorbeeld:
Radiobutton(root, text = txt, variable = v, value = m).pack(anchor=W)
De radiobuttons worden via een bijzondere vorm van de for-lus gedefinieerd. In plaats van een lusteller zijn
hier twee variabelen aangegeven, die parallel worden geteld. De beide tellers doorlopen achtereenvolgend de
elementen van de lijst
patroon. Hierbij neemt de eerste telvariabele txt de eerste waarde van het
waardepaar over: de naast de radiobuttons aan te geven tekst. De tweede telvariabele
m neemt het nummer
van het betreffende patroon uit de tweede waarde van elk waardepaar.
De lus maakt op deze manier drie radiobuttons aan
root is de widget, waarin de radiobuttons liggen. De
parameter
text van een radiobutton, geeft de weer te geven tekst weer, die in dit geval uit de variabelen txt
wordt gelezen. De parameter
variable legt een eerder gedeclareerde Tk-variabele vast, waarin na de keuze
door de gebruiker de waarde van de gekozen radiobutton wordt ingevoerd.
De parameter
value legt voor elke radiobutton een getalwaarde vast, die in dit geval uit de variabele m wordt
gelezen. Wanneer een gebruiker op deze radiobutton klikt, wordt de waarde van de parameter
value in de
onder
variabele ingevoerde variabele geschreven. Elke van de drie radiobuttons wordt na zijn definitie
gelijk met de methode
.pack() in in het dialoogveld ingebouwd. De parameter anchor=W zorgt ervoor, dat
de radiobuttons links uitgelijnd onder elkaar worden uitgelijnd.
Taste(root, text="Start", command=LedEin).pack(side=LEFT)
De toets wordt overeenkomstig het laatste voorbeeld gedefinieerd.
root.mainloop(); GPIO.cleanup()
De hoofdlus en het programma-einde komen ook overeen met het laatste voorbeeld.
Start het programma en kies een knipperpatroon via een van de radiobuttons. De eerste keuze is via de
variabele
v vooraf gekozen. Wanneer u radiobuttons gebruikt in een dialoogveld, moet u altijd een nuttige
voorkeuze vastleggen, opdat er nooit een ongedefinieerd resultaat ontstaat, mocht de gebruiker zelf geen