Instructions
84
elif e == 2:
for i in range(w):
for j in range(4):
GPIO.output(LED[j], True)
time.sleep(t)
for j in range(4):
GPIO.output(LED[j], False)
time.sleep(t)
Im zweiten Fall werden fünfmal hintereinander alle vier LEDs gleichzeitig eingeschaltet und, nachdem sie für
0,2 Sekunden geleuchtet haben, auch gleichzeitig wieder ausgeschaltet.
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)
Der dritte Fall entspricht dem ersten, mit dem Unterschied, dass die LEDs rückwärts gezählt werden und
dadurch das Lauflicht in umgekehrter Richtung läuft.
Nachdem die Funktion definiert ist, werden die Elemente der grafischen Oberfläche angelegt.
Label(root, text="Bitte Button klicken, um das Lauflicht zu starten").pack()
Der Text des Dialogfelds wird wieder als Label-Objekt definiert. Neu ist die Definition der drei Radiobuttons.
for txt, m in muster:
Radiobutton(root, text = txt, variable = v, value = m).pack(anchor=W)
Die Radiobuttons werden über eine besondere Form der for-Schleife definiert. Anstelle eines Schleifenzäh-
lers sind hier zwei Variablen angegeben, die parallel gezählt werden. Die beiden Zähler durchlaufen nach-
einander die Elemente der Liste
muster. Dabei übernimmt die erste Zählvariable txt den ersten Wert des
Wertepaars: den neben dem Radiobutton anzuzeigenden Text. Die zweite Zählvariable
m übernimmt die
Nummer des jeweiligen Musters aus dem zweiten Wert jedes Wertepaars.
Die Schleife legt auf diese Weise drei Radiobuttons an, deren erster Parameter immer
root ist, das Widget, in
dem die Radiobuttons liegen. Der Parameter
text eines Radiobuttons gibt den anzuzeigenden Text an, der in
diesem Fall aus der Variablen
txt gelesen wird. Der Parameter variable legt eine zuvor deklarierte Tk-
Variable fest, in die nach der Auswahl durch den Benutzer der Wert des ausgewählten Radiobuttons einge-
tragen wird.
Der Parameter
value legt für jeden Radiobutton einen Zahlenwert fest, der in diesem Fall aus der Variablen
m gelesen wird. Klickt ein Benutzer auf diesen Radiobutton, wird der Wert des Parameters value in die unter
variable eingetragene Variable geschrieben. Jeder der drei Radiobuttons wird nach seiner Definition gleich
mit der Methode
pack() in das Dialogfeld eingebaut. Der Parameter anchor=W sorgt dafür, dass die Radio-
buttons linksbündig untereinander ausgerichtet werden.
Button(root, text="Start", command=LedEin).pack(side=LEFT)