Ich bin neu in der Welt der Programmierer und muss für meine Ausbildung einen Versuch programmieren.
Mein Plan ist es, wenn das Programm startet ein GUI zu öffnen in das man seine Werte eingeben kann und dann per Button die Simulation startet.
Das ganze läuft über VPython und ich benutze die wx Lib.
Code: Alles auswählen
import wx
class Abfrage(wx.Frame):
def __init__(self,parent):
wx.Frame.__init__(self, parent, size=(480,350))
panel = wx.Panel(self)
self.info0 = wx.StaticText(self, label=("In diesem Fenster kannst du deine Werte eingeben,"),pos=(10,10))
self.info1 = wx.StaticText(self, label=("mit denen die Stokesimulation laufen soll. Dabei ist zu beachten,"),pos=(10,30))
self.info2 = wx.StaticText(self, label=("dass die Zahlen mit einem Punkt anstelle eines Kommas eingegeben werden."),pos=(10,50))
self.info1 = wx.StaticText(self, label=("Wird dies nicht eingehalten, so kann die Simulation nicht beginnen."),pos=(10,70))
self.Text = wx.StaticText(self, label=("Bitte gib deine Werte hier ein:"), pos=(10,100))
self.Aktuell = wx.StaticText(self, label=("Eingegebene Werte:"),pos=(270,110))
self.nF = wx.StaticText(self, label=("dynamische Viskosität:"), pos=(10,130))
self.mK = wx.StaticText(self, label=("Masse Kugel:"), pos=(10,160))
self.dK = wx.StaticText(self, label=("Durchmesser Kugel:"), pos=(10,190))
self.pF = wx.StaticText(self, label=("Dichte Flüssigkeit:"), pos=(10,220))
self.v0 = wx.StaticText(self, label=("Anfangsgeschwindigkeit:"), pos=(10,250))
self.y0 = wx.StaticText(self, label=("Anfangshöhe:"), pos=(10,280))
self.txtnF = wx.TextCtrl(self,value=(""),pos=(160,128),size=(100,20))
self.txtmK = wx.TextCtrl(self,value=(""),pos=(160,158),size=(100,20))
self.txtdK = wx.TextCtrl(self,value=(""),pos=(160,188),size=(100,20))
self.txtpF = wx.TextCtrl(self,value=(""),pos=(160,218),size=(100,20))
self.txtv0 = wx.TextCtrl(self,value=(""),pos=(160,248),size=(100,20))
self.txty0 = wx.TextCtrl(self,value=(""),pos=(160,278),size=(100,20))
self.aknF = wx.StaticText (self,label="0.0",pos=(270,128))
self.akmK = wx.StaticText (self,label="0.0",pos=(270,158))
self.akdK = wx.StaticText (self,label="0.0",pos=(270,188))
self.akpF = wx.StaticText (self,label="0.0",pos=(270,218))
self.akv0 = wx.StaticText (self,label="0.0",pos=(270,248))
self.aky0 = wx.StaticText (self,label="0.0",pos=(270,278))
self.akButton = wx.Button (self,wx.ID_ANY,label=("Überprüfen"), pos=(380,193), size=(80,30))
self.akButton.Bind (wx.EVT_BUTTON,self.Aktualiseren)
self.uebButton = wx.Button (self,wx.ID_ANY,label=("Übernehmen"), pos=(380,233), size=(80,30))
self.okButton = wx.Button (self,wx.ID_ANY,label=("Starten"), pos=(380,273), size=(80,30))
self.okButton.Bind (wx.EVT_BUTTON,self.Schliessen)
self.Show()
def Aktualiseren(self, evt):
##################################################
try:
if float(self.txtnF.GetValue())== True:
self.aknF.SetLabel ("1.0")
else:
self.aknF.SetLabel (self.txtnF.GetValue())
except:
self.aknF.SetLabel ("Keine Zahl")
##################################################
try:
if float(self.txtmK.GetValue())== True:
self.akmK.SetLabel ("1.0")
else:
self.akmK.SetLabel (self.txtmK.GetValue())
except:
self.akmK.SetLabel ("Keine Zahl")
##################################################
try:
if float(self.txtdK.GetValue())== True:
self.akdK.SetLabel ("1.0")
else:
self.akdK.SetLabel (self.txtdK.GetValue())
except:
self.akdK.SetLabel ("Keine Zahl")
##################################################
try:
if float(self.txtpF.GetValue())== True:
self.akpF.SetLabel ("1.0")
else:
self.akpF.SetLabel (self.txtpF.GetValue())
except:
self.akpF.SetLabel ("Keine Zahl")
##################################################
try:
if float(self.txtv0.GetValue())== True:
self.akv0.SetLabel ("1.0")
else:
self.akv0.SetLabel (self.txtv0.GetValue())
except:
self.akv0.SetLabel ("Keine Zahl")
##################################################
try:
if float(self.txty0.GetValue())== True:
self.aky0.SetLabel ("1.0")
else:
self.aky0.SetLabel (self.txty0.GetValue())
except:
self.aky0.SetLabel ("Keine Zahl")
##################################################
def Schliessen(self, evt):
self.Close(True)
app = wx.App(False)
Abfrage(None)
app.MainLoop()
Als Beispiel: Der Text bzw. die Zahl in self.txtnF soll als Wert für die Variable nF gespeichert werden.
Außerdem gehe ich davon aus, dass die Funtion "Aktualisieren" um einiges einfacher geschrieben werden kann. Jedoch weiß ich noch nicht genau wie ich das mache.
Vielen Dank schonmal.
![Very Happy :D](./images/smilies/icon_biggrin.gif)