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.