Daten ubergeben zwichen 2 frames
Verfasst: Mittwoch 12. März 2008, 12:46
Hallo leute. Hab ein kleines problem
Ich habe ein MainFrame an (cMainFrame) dessen Button ich einen anderen frame (cFrmOptFilters) ge-bindet habe.
Im main frame habe ich eine liste [1,1,1,1] die ich im anderem ausfullen muss (Checkboxes)
Mein Problem liegt darin dass ich so aus dem main frame die liste in die andere form bringen kann und so die Checkboxes ausfullen kann. Wenn ich etwas in den checkboxen geaendert habe und auf ok druecke sollte es mir die werte zuruck geben und sie ins MainFraime in self.filters speicher.
ich weiss aber nicht wie.
self.filters stellt einen buffer fuer "Options"
Danke [/code]
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]