nachdem ich eine "schmerzliche Entscheidungsphase" hinter mir liegt,
http://www.python-forum.de/posting.php? ... e&p=114083
möchte ich mein Programm neu schreiben ( mittels wxPython). Ich bin die GUI ist erstellt, und nun gehts ans Eingemachte.
Folgender Teil soll so gestaltet werden, dass die eingegebenen Werte nach "Enter" mit onTextCtrl geprüft werden und dann den Variablen zugewiesen werden, um damit weiter zu rechnen (vgl. letztes Posting im o.g. Link).
Code: Alles auswählen
def createEingabemaske(self,panel):
"""Es werden statische Texte und TextCtrl erzeugt"""
#X1
self.text = wx.StaticText(panel, -1, u'Wert X1 mit X1 < x',pos=(20,50))
self.text = wx.StaticText(panel, -1, u'X1=',pos=(20,73))
self.X1 = wx.TextCtrl(panel,'1', size = (80, -1), pos = (55, 70))
#self.Bind(wx.EVT_TEXT, self.onTextCtrl)
#X1=ontextCtrl(self.X1)
#X2
self.text = wx.StaticText(panel, -1, u'Wert X2 mit X2 > x',pos=(180,50))
self.text = wx.StaticText(panel, -1, u'X2=',pos=(180,73))
self.X2 = wx.TextCtrl(panel,'1', size = (80, -1), pos = (215, 70))
#X2=ontextCtrl(self.X2)
#Y1
self.text = wx.StaticText(panel, -1, u'Wert Y1 mit Y1 < y',pos=(20,110))
self.text = wx.StaticText(panel, -1, u'Y1=',pos=(20,133))
self.Y1 = wx.TextCtrl(panel, '1', size = (80, -1), pos = (55, 130))
#Y1=ontextCtrl(self.Y1)
#Y2
self.text = wx.StaticText(panel, -1, u'Wert Y2 mit Y2 > y',pos=(180,110))
self.text = wx.StaticText(panel, -1, u'Y2=',pos=(180,133))
self.Y2 = wx.TextCtrl(panel, '1', size = (80, -1), pos = (215, 130))
#Y2=ontextCtrl(self.Y2)
#x
self.text = wx.StaticText(panel, -1, u'Wert x',pos=(20,170))
self.text = wx.StaticText(panel, -1, u'x=',pos=(20,193))
self.x = wx.TextCtrl(panel, '1', size = (80, -1), pos = (55, 190))
#x=ontextCtrl(self.x)
y=(x-X1)*(Y2-Y1)/(X2-X1)+Y1
#Statusbar
#self.CreateStatusBar(1)
#CheckBox
#self.cb = wx.CheckBox(self.tb, ID_CB, 'Alle Werte zeigen', (300,5))
def onTextCtrl(self, event):
"""Ueberprueft was der Benutzer eingibt.
Falls Buchstaben eingegeben werden, wird ein MassageDialog geworfen"""
try:
#Holt den Inhalt des TextCtrl
self.pruefe = event.GetString()
#Ueberprueft ob der Wert ein float ist
if self.pruefe.find(',')!=-1:
self.eingabe_new=self.pruefe.replace(',','.')
else:
self.eingabe_new=self.pruefe
return float(self.eingabe_new)
except:
#Setzt ein das TextCtrl den vorigen Wert ein
#self.textctrl.SetValue(str(self.zahl))
dlg = wx.MessageDialog(self, 'Bitte nur Zahlen eingeben!', "powered by wxPython",
wx.OK | wx.ICON_ERROR)
dlg.ShowModal()
Mit den einschlägigen Tutorials habe ich mich bereits besschäftigt, aber dort wird immer nur ein Eingabefeld dargestellt

Grüße mathi
edit: Code verändert
edit2: Frage präzisiert
