Mit Dialogfenstern können Parameterwerte interaktiv eingegeben oder verändert werden. Dazu können Textfelder für die Eingabe von Zahlen oder Texten, Checkboxen, Radiobutton und Schieberegler verwendet werden. In Textfeldern können auch Werte als Ausgabe angezeigt werden. Beispiel 1: Die Anzahl Schritte, Winkel und Anzahl Wiederholungen können in einem Dialogfenster geändert werden. Mit Klick auf OK wird die neue Figur gezeichnet.
|
|
Erklärungen zum Programmcode:
stepEntry = IntEntry() :Erzeugt ein Textfeld zur Eingabe von ganzen Zahlen | |
angleEntry = FloatEntry() : Erzeugt ein Textfeld zur Eingabe von Dezimalzahlen | |
pane1 = EntryPane() : Erzeugt einen Bereich (Zone) in dem die Reihenfolge der Eingabefelder festgelegt wird | |
statusEntry = StringEntry() : Erzeugt ein Textfeld für Rückmeldungen. Falls die Eingabefelder fehlerhafte Zeichen (z. B. Buchstaben, statt Zahlen) erhalten oder falls eine der Eingaben leer ist, erscheint eine Fehlermeldung | |
dlg = EntryDialog(700, 10, pane1, pane2, pane3) : Erzeugt ein Dialogfenster, welches aus zwei Eingabebereichen besteht und an der Position (700, 10) erscheint | |
dlg.setAlwaysOnTop(True) : Bewirkt, dass das Dialogfenster nie unter dem Turtlefenster verschwindet | |
while not dlg.isDisposed(): Führt die Schleife solange durch, bis das Dialogfenster geschlossen wird | |
if okBtn.isHit(): Falls der Ok-Button gedrückt wird, wird die Figur mit den eingegebenen Werten gezeichnet. Wenn das Turtle-Fenster geschlossen wird, wird auch das Dialogfenster geschlossen. | |
if isDisposed(): Wenn das Turtle-Fenster geschlossen wird, wird auch das Dialogfenster geschlossen | |
dispose() : Schliesst das Turtlefenster |
Beispiel 2: Mit Radiobuttons kann die Turtle-und Stiftfarbe gewählt werden. Das Zeichnen erfolgt unmittelbar nach der Wahl der Farbe.
|
|
Erklärungen zum Programmcode:
red = RadioEntry("Red") : Erzeugt einen Radiobutton mit der Anschrift Red | |
pane2 = EntryPane("Turtle Color", red, green, blue) : Erzeugt einen neuen Eingabe-Bereich mit drei Radiobuttons | |
if dlg.isModified(): Die nachfolgenden Zeilen werden ausgeführt, wenn einer der Radiobuttons gewählt wird |
Beispiel 3: Mit Checkboxen kann eine oder mehrere Optionen gewählt werden. Die Figur wird mit Klick auf Ok-Button gezeichnet.
|
|
Erklärungen zum Programmcode:
turtleColor = CheckEntry("Change Turtle Color", False) : Erzeugt eine Checkbox, die nicht selektiert ist |
Beispiel 4: Mit Schiebereglern (Sliders) wird die Farbe und die Grösse der Figur geregelt.
|
|
Erklärungen zum Programmcode:
sliderRed = SliderEntry(0, 255, 250, 20, 10) : Erzeugt einen Schieberegler für die Regelung des roten Farbanteils der Füllfarbe. Die Parameter bedeuten der Reihe nach: minimaler Wert, maximaler Wert, Initialisierungsposition des Schiebereglers, Abstand der Hauptticks, Abstand der Nebenticks. |
Beispiel 5: Die Eingabedialoge können auch ohne Turtlegrafik verwendet werden. Im folgenden Beispiel wird mit Hilfe eines Schiebereglers die Frequenz des ersten Tons einer Tonleiter festgelegt. Diese wird danach abgespielt.
|
|
Erklärungen zum Programmcode:
playTone(f , 500, block = True) : Spielt Ton mit der Frenqenz f während 500 Millisekunden ab | |
fnext = f * r**i : Berechnet die Frequenz des nachfolgenden Halbtons |