ich weis nicht was ich da falsch mache. Ich kann die Radiobuttons durch anklicken nicht aktivieren. D.h. so wie ich das programmiert habe, kommt der Event irgendwie nicht an.
Code: Alles auswählen
#!c:/python24/python
import wx
import wx.aui
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, title = "Pump v0.1", size = (800,600), pos = (300, 300))
# Make new notebook
self.nb = wx.aui.AuiNotebook(self)
# Put notebook into sizer
sizer = wx.BoxSizer()
sizer.Add(self.nb, 1, wx.EXPAND)
self.SetSizer(sizer)
# Add tabs to notebook
self.makeTabs()
self.inputLayout()
def tabNames(self):
name = ['Concept', \
'Design', \
'Helix', \
'Characteristic', \
'hydr. Efficiency', \
'Comments', \
]
return name
def fluidNames(self):
fluids = ['Water/Gylcol', \
'Water', \
'Air', \
'Other', \
]
return fluids
def makeTabs(self):
for name in self.tabNames():
panel = wx.Panel(self, -1)
#panel.SetBackgroundColour((110, 110, 180))
panel.SetBackgroundColour('WHITE')
self.nb.AddPage(panel, name)
def inputLayout(self):
self.gbs = wx.GridBagSizer(6, 5)
rb = wx.RadioBox(self.nb.GetPage(0), -1, "Fluid type", wx.DefaultPosition, wx.DefaultSize, self.fluidNames(), 1, wx.RA_SPECIFY_COLS)
rb.SetSelection(0) # Pre-select first element in radio box
self.Bind(wx.EVT_RADIOBOX, self.OnRadio, rb)
self.gbs.Add(rb, (0,5), (1,1), wx.ALIGN_LEFT | wx.ALL, 5)
self.nb.GetPage(0).SetSizerAndFit(self.gbs)
def OnRadio(self, event):
self.selected = event.GetInt()
print self.selected
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None)
frame.Show(True)
self.SetTopWindow(frame)
return True
if __name__ == '__main__':
app = MyApp(redirect=False)
app.MainLoop()