Ich habe ein MainFrame an (cMainFrame) dessen Button ich einen anderen frame (cFrmOptFilters) ge-bindet habe.
Code: Alles auswählen
self.flters=[1,1,1,1]
def OnMenuOptions_Filters(self, event):
self.FilterForm = cFrmOptFilters.cFrmOptFilters(None, -1)
self.FilterForm.SetFlags(self.filters)
print self.filters
self.FilterForm.Show()
Code: Alles auswählen
class cFrmOptFilters(wx.Frame):
def __init__(self, *args, **kwds):
# begin wxGlade: cFrmOptFilters.__init__
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.ChbFil1 = wx.CheckBox(self, -1, "Entire Image")
self.ChbFil2 = wx.CheckBox(self, -1, "Ratio (w>h)")
self.ChbFil3 = wx.CheckBox(self, -1, "Upper border")
self.ChbFil4 = wx.CheckBox(self, -1, "Lover border")
self.BtnOptFilOk = wx.Button(self, -1, "Ok")
self.__set_properties()
self.__do_layout()
self.__set_bindings()
# end wxGlade
def __set_bindings(self):
self.Bind(wx.EVT_BUTTON, self.ButtonOk, self.BtnOptFilOk)
pass
def SetFlags(self,f):
self.flags=f
self.ChbFil1.SetValue(f[0])
self.ChbFil2.SetValue(f[1])
self.ChbFil3.SetValue(f[2])
self.ChbFil4.SetValue(f[3])
def GetFlags(self):
self.flags = []
self.flags.append(int(self.ChbFil1.GetValue()))
self.flags.append(int(self.ChbFil2.GetValue()))
self.flags.append(int(self.ChbFil3.GetValue()))
self.flags.append(int(self.ChbFil4.GetValue()))
print self.flags
def ButtonOk(self, event):
self.GetFlags()
self.Close()
def __set_properties(self):
# begin wxGlade: cFrmOptFilters.__set_properties
self.SetTitle("frame_3")
self.SetBackgroundColour(wx.Colour(245, 245, 252))
self.ChbFil1.SetMinSize((-1, -1))
self.ChbFil1.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
self.ChbFil2.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
self.ChbFil3.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
self.ChbFil4.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
self.BtnOptFilOk.SetBackgroundColour(wx.Colour(245, 245, 252))
# end wxGlade
def __do_layout(self):
# begin wxGlade: cFrmOptFilters.__do_layout
sizer_12 = wx.BoxSizer(wx.VERTICAL)
sizer_12.Add(self.ChbFil1, 0, wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ADJUST_MINSIZE, 0)
sizer_12.Add(self.ChbFil2, 0, wx.EXPAND|wx.ADJUST_MINSIZE, 0)
sizer_12.Add(self.ChbFil3, 0, wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ADJUST_MINSIZE, 0)
sizer_12.Add(self.ChbFil4, 0, wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ADJUST_MINSIZE, 0)
sizer_12.Add(self.BtnOptFilOk, 0, wx.ALIGN_BOTTOM|wx.ALIGN_CENTER_HORIZONTAL|wx.ADJUST_MINSIZE, 0)
self.SetAutoLayout(True)
self.SetSizer(sizer_12)
sizer_12.Fit(self)
sizer_12.SetSizeHints(self)
self.Layout()
self.Centre()
# end wxGlade
ich weiss aber nicht wie.
self.filters stellt einen buffer fuer "Options"
Danke [/code]