Eingabe von Daten
Zielsetzung
Die Benutzeroberfläche soll ein Eingabefeld enthalten, in das der Benutzer die Spielzahl eingeben kann.
Diese Spielzahl soll dann bei der Ermittlung des Gewinns benutzt werden, wenn die Schaltfläche
Gewinn auszahlen
angeklickt wird.
Eingabefelder als GUI-Objekte
Das folgende Testprogramm zeigt, wie man ein Eingabefeld erzeugt und zur Verarbeitung von Benutzereingaben nutzt.
# -*- coding: iso-8859-1 -*- from wx import * # Ereignisverarbeitung def Button_Verdoppeln_Click(event): # Verwaltung der Daten zahl = int(tcZahl.GetLabel()) # Verarbeitung der Daten zahl = zahl * 2 # Anzeige der Daten tcZahl.SetLabel(str(zahl)) # Erzeugung des Fensters app = App() frame = Frame(parent=None) frame.SetTitle("Test") frame.SetSize((128, 145)) frame.SetBackgroundColour("white") frame.Show() # Eingabefeld für die Zahl tcZahl = TextCtrl(parent=frame) tcZahl.SetSize((36, -1)) tcZahl.SetPosition((45, 40)) # Button zum Auswerten bGewinn = Button(parent=frame) bGewinn.SetLabel("Eingabe verdoppeln") bGewinn.SetPosition((10, 80)) bGewinn.SetSize((100, 20)) bGewinn.Bind(EVT_BUTTON, Button_Verdoppeln_Click) # Aktivierung des Fensters app.MainLoop()
Wenn der Benutzer eine Zahl vom Typ int
in das Eingabefeld eingibt und die Schaltfläche anklickt,
dann wird diese Zahl verdoppelt und im Eingabefeld wieder ausgegeben.
Eingabefelder werden mit Hilfe von TextCtrl
-Objekten realisiert.
Bei einem TextCtrl
-Objekt erhält man mit der Operation GetLabel
Zugriff auf
den eingegebenen Text. Mit Hilfe der Operationen SetLabel
kann man neuen Inhalt einfügen.
Aufgabe 1
Ergänze das chuck-a-luck-Programm so, dass der Benutzer eine Spielzahl eingeben kann.
Diese Spielzahl soll dann bei der Ermittlung des Gewinns benutzt werden, wenn die Schaltfläche
Gewinn auszahlen
angeklickt wird.