Eine GUI aus GUI-Objekten
Beispiel: Anhalteweg eines Autos
Die folgende grafische Benutzeroberfläche soll erstellt werden:
Im folgenden Programm wird die grafische Benutzeroberfläche aus GUI-Objekten (zu wxPython-Klassen) erzeugt.
# -*- coding: iso-8859-1 -*- import wx def on_bBerechnen_mouseClick(event): # Uebernahme der Daten geschwindigkeit = float(tfGeschwindigkeit.GetValue()) # Verarbeitung der Daten reaktionsweg = (geschwindigkeit/10)*3 bremsweg = (geschwindigkeit/10) * (geschwindigkeit/10) anhalteweg = reaktionsweg + bremsweg # Anzeige der Daten anzeigeReaktionsweg = '%.2f'%(reaktionsweg) tfWertReaktionsweg.SetLabel(anzeigeReaktionsweg) anzeigeBremsweg = '%.2f'%(bremsweg) tfWertBremsweg.SetLabel(anzeigeBremsweg) anzeigeAnhalteweg = '%.2f'%(anhalteweg) tfWertAnhalteweg.SetLabel(anzeigeAnhalteweg) app = wx.App() frame = wx.Frame(parent=None, title="Anhalteweg", size=(250, 260)) frame.SetBackgroundColour('WHITE') stUeberschrift = wx.StaticText(parent=frame, id=-1, label="Anhalteweg eines Autos", size=(220, -1), style=wx.TE_CENTER) stUeberschrift.SetBackgroundColour((192, 192, 192, 255)) stUeberschrift.SetPosition((10, 10)) stGeschwindigkeit = wx.StaticText(parent=frame, id=-1, label="Geschwindigkeit [in km/h]", size=(160, -1)) stGeschwindigkeit.SetBackgroundColour((196, 255, 196, 255)) stGeschwindigkeit.SetPosition((10, 40)) tfGeschwindigkeit = wx.TextCtrl(parent=frame, id=-1, size=(50, -1)) tfGeschwindigkeit.SetPosition((180, 36)) stGeschaetzterAnhalteweg = wx.StaticText(parent=frame, id=-1, label="geschaetzter Anhalteweg [in m]", size=(160, -1)) stGeschaetzterAnhalteweg.SetBackgroundColour((196, 255, 196, 255)) stGeschaetzterAnhalteweg.SetPosition((10, 70)) tfGeschaetzterAnhalteweg = wx.TextCtrl(parent=frame, id=-1, size=(50, -1)) tfGeschaetzterAnhalteweg.SetPosition((180, 66)) bBerechnen = wx.Button(parent=frame, id=-1, label="berechnen", size=(-1, -1)) bBerechnen.SetBackgroundColour((255, 255, 128, 255)) bBerechnen.SetPosition((50, 100)) bBerechnen.Bind(wx.EVT_BUTTON, on_bBerechnen_mouseClick) stReaktionsweg = wx.StaticText(parent=frame, id=-1, label="Reaktionsweg [in m]", size=(160, -1)) stReaktionsweg.SetBackgroundColour((255, 179, 179, 255)) stReaktionsweg.SetPosition((10, 140)) tfWertReaktionsweg = wx.TextCtrl(parent=frame, id=-1, size=(50, -1)) tfWertReaktionsweg.SetPosition((180, 136)) stBremsweg = wx.StaticText(parent=frame, id=-1, label="Bremsweg [in m]", size=(160, -1)) stBremsweg.SetBackgroundColour((255, 179, 179, 255)) stBremsweg.SetPosition((10, 170)) tfWertBremsweg = wx.TextCtrl(parent=frame, id=-1, size=(50, -1)) tfWertBremsweg.SetPosition((180, 166)) stAnhalteweg = wx.StaticText(parent=frame, id=-1, label="Anhalteweg [in m]", size=(160, -1)) stAnhalteweg.SetBackgroundColour((255, 179, 179, 255)) stAnhalteweg.SetPosition((10, 200)) tfWertAnhalteweg = wx.TextCtrl(parent=frame, id=-1, size=(50, -1)) tfWertAnhalteweg.SetPosition((180, 196)) frame.Show() app.MainLoop()