2017-07-24 1 views
0

Ich arbeite an der Entwicklung einer Anwendung, bei der der Benutzer Informationen in Textfelder eingibt, die generiert werden, wenn ein Optionsfeld ausgewählt und die Informationen in einer CSV-Datei gespeichert werden. Wenn die Anwendung geöffnet wird, wird das erste Optionsfeld ausgewählt. Obwohl dies kein Problem ist, wird keines der Textfelder angezeigt. Wenn eines der Optionsfelder ausgewählt ist und das erste ausgewählt ist, erscheinen die Textfelder problemlos.Vorausgewählte Optionsschaltfläche funktioniert nicht wxPython

Hier ist der Code, der die Radiobuttons erzeugen:

self.radioStaticBox = wx.StaticBox(self.panel,-1,"Material Type: ") 
    self.radioStaticBoxSizer = wx.StaticBoxSizer(self.radioStaticBox, wx.VERTICAL) 
    self.radioBox = sc.SizedPanel(self.panel, -1) 
    self.radioBox.SetSizerType("horizontal") 
    self.isoRadioButton = wx.RadioButton(self.radioBox,-1, "Isotropic") 
    self.orthoRadioButton = wx.RadioButton(self.radioBox,-1, "Orthotropic") 
    self.orthotRadioButton = wx.RadioButton(self.radioBox,-1, "Orthotropic (with thickness)") 
    self.isoRadioButton.SetValue(True) 
    self.radioBox.Bind(wx.EVT_RADIOBUTTON, self.set_type) 

Und die Funktion, die die Radio-Buttons gebunden werden:

für die Hilfe
def generate_params(self, event): 
    self.matStaticBoxSizer.Clear(True) 
    if self.matType == "Iso": 

     idSb = wx.StaticBox(self.panel, 0, "Name:") 
     idSbs = wx.StaticBoxSizer(idSb, wx.HORIZONTAL) 
     self.idText = wx.TextCtrl(self.panel) 
     idSbs.Add(self.idText, 0, wx.ALL|wx.LEFT, self.margin) 
     .... 

Dank!

Antwort

0

Kurz gesagt, Sie scheinen Teil der Anzeige im ersten Abschnitt Ihres Codes zu definieren und dann einen anderen Abschnitt in der Funktion generate_params, dies wird per Definition, entschuldigen Sie das Wortspiel, stellen Sie sicher, dass Sie nicht sehen, was ist dort definiert, bis diese Funktion ausgeführt wird.
Definieren Sie alle Anzeigeelemente im ersten Abschnitt zusammen und füllen Sie sie dann entsprechend den Funktionen in Ihren Funktionen auf.
Mit anderen Worten, definieren Sie den Bildschirm an einer Stelle, den Anfang, Werte wie und wann aufzufüllen.