Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Eine GUI aus GUI-Objekten

Beispiel: Anhalteweg eines Autos

Die folgende grafische Benutzeroberfläche soll erstellt werden:

GUI

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()
X

Fehler melden

X

Suche