how to create a button that is connected with many frames

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • cindrie
    New Member
    • Mar 2010
    • 1

    how to create a button that is connected with many frames

    please correct my code using boa constructor

    ------------frame1---------------
    Code:
    #Boa:Frame:Frame1
     
    import wx
    import Frame2
    import Frame3
    
     
    def create(parent):
        return Frame1(parent)
     
    [wxID_FRAME1, wxID_FRAME1BUTTON1, wxID_FRAME1BUTTON2, wxID_FRAME1PANEL1, 
    ] = [wx.NewId() for _init_ctrls in range(4)]
    
    class Frame1(wx.Frame):
        def _init_coll_boxSizer1_Items(self, parent):
            # generated method, don't edit
    
            parent.AddWindow(self.panel1, 1, border=0, flag=wx.EXPAND)
    
        def _init_sizers(self):
            # generated method, don't edit
            self.boxSizer1 = wx.BoxSizer(orient=wx.VERTICAL)
    
            self._init_coll_boxSizer1_Items(self.boxSizer1)
    
            self.SetSizer(self.boxSizer1)
    
        def _init_ctrls(self, prnt):
            # generated method, don't edit
            wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
                  pos=wx.Point(512, 326), size=wx.Size(400, 257),
                  style=wx.DEFAULT_FRAME_STYLE, title='Frame1')
            self.SetClientSize(wx.Size(392, 223))
    
            self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self,
                  pos=wx.Point(0, 0), size=wx.Size(392, 223),
                  style=wx.TAB_TRAVERSAL)
    
            self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label='button1',
                  name='button1', parent=self.panel1, pos=wx.Point(168, 88),
                  size=wx.Size(75, 23), style=0)
            self.button1.Bind(wx.EVT_BUTTON, self.OnButton1, id=wxID_FRAME1BUTTON1)
    
            self.button2 = wx.Button(id=wxID_FRAME1BUTTON2, label='button2',
                  name='button2', parent=self.panel1, pos=wx.Point(184, 136),
                  size=wx.Size(75, 23), style=0)
            self.button2.Bind(wx.EVT_BUTTON, self.OnButton2, id=wxID_FRAME1BUTTON2)
    
            self._init_sizers()
    
        def __init__(self, parent):
            self._init_ctrls(parent)
               
        def OnButton1(self, event):
            self.main = Frame2.create(None)
            self.main.Show()
            self.Hide()
    
        def OnButton2(self, event):
            self.main = Frame3.create(None)
            self.main.Show()
            self.Hide()

    -----------------frame2--------------
    Code:
    #Boa:Frame:Frame2
     
    import wx
     
    def create(parent):
        return Frame2(parent)
     
    [wxID_FRAME2, wxID_FRAME2BUTTON1, wxID_FRAME2PANEL1, 
    ] = [wx.NewId() for _init_ctrls in range(3)]
    
    class Frame2(wx.Frame):
        def _init_coll_boxSizer1_Items(self, parent):
            # generated method, don't edit
    
            parent.AddWindow(self.panel1, 1, border=0, flag=wx.EXPAND)
    
        def _init_sizers(self):
            # generated method, don't edit
            self.boxSizer1 = wx.BoxSizer(orient=wx.VERTICAL)
    
            self._init_coll_boxSizer1_Items(self.boxSizer1)
    
            self.SetSizer(self.boxSizer1)
    
        def _init_ctrls(self, prnt):
            # generated method, don't edit
            wx.Frame.__init__(self, id=wxID_FRAME2, name='Frame2', parent=prnt,
                  pos=wx.Point(530, 253), size=wx.Size(400, 257),
                  style=wx.DEFAULT_FRAME_STYLE, title='Frame2')
            self.SetClientSize(wx.Size(392, 223))
    
            self.panel1 = wx.Panel(id=wxID_FRAME2PANEL1, name='panel1', parent=self,
                  pos=wx.Point(0, 0), size=wx.Size(392, 223),
                  style=wx.TAB_TRAVERSAL)
    
            self.button1 = wx.Button(id=wxID_FRAME2BUTTON1, label=u'frame1',
                  name='button1', parent=self.panel1, pos=wx.Point(48, 160),
                  size=wx.Size(75, 23), style=0)
            self.button1.Bind(wx.EVT_BUTTON, self.OnButton1, id=wxID_FRAME2BUTTON1)
    
            self._init_sizers()
    
        def __init__(self, parent):
            self._init_ctrls(parent)
            self.parent = parent
     
        def OnButton1(self, event):
            self.main = Frame1.create(None)
            self.main.Show()
            self.Hide()
    --------------frame3--------------
    Code:
    #Boa:Frame:Frame3
    
    import wx
    
    def create(parent):
        return Frame3(parent)
    
    [wxID_FRAME3, wxID_FRAME3BUTTON1, wxID_FRAME3PANEL1, 
    ] = [wx.NewId() for _init_ctrls in range(3)]
    
    class Frame3(wx.Frame):
        def _init_coll_boxSizer1_Items(self, parent):
            # generated method, don't edit
    
            parent.AddWindow(self.panel1, 1, border=0, flag=wx.EXPAND)
    
        def _init_sizers(self):
            # generated method, don't edit
            self.boxSizer1 = wx.BoxSizer(orient=wx.VERTICAL)
    
            self._init_coll_boxSizer1_Items(self.boxSizer1)
    
            self.SetSizer(self.boxSizer1)
    
        def _init_ctrls(self, prnt):
            # generated method, don't edit
            wx.Frame.__init__(self, id=wxID_FRAME3, name='', parent=prnt,
                  pos=wx.Point(552, 276), size=wx.Size(400, 250),
                  style=wx.DEFAULT_FRAME_STYLE, title='Frame3')
            self.SetClientSize(wx.Size(392, 216))
    
            self.panel1 = wx.Panel(id=wxID_FRAME3PANEL1, name='panel1', parent=self,
                  pos=wx.Point(0, 0), size=wx.Size(392, 216),
                  style=wx.TAB_TRAVERSAL)
    
            self.button1 = wx.Button(id=wxID_FRAME3BUTTON1, label=u'frame1',
                  name='button1', parent=self.panel1, pos=wx.Point(192, 80),
                  size=wx.Size(75, 23), style=0)
            self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
                  id=wxID_FRAME3BUTTON1)
    
            self._init_sizers()
    
        def __init__(self, parent):
            self._init_ctrls(parent)
            self.parent = parent
     
        def OnButton1(self, event):
            pos = self.GetPosition()
            self.parent.Move(pos)
            self.parent.Show()
            self.Hide()

    -----------------app1---------------
    Code:
    #!/usr/bin/env python
    #Boa:App:BoaApp
    
    import wx
    
    import Frame1
    import Frame2
    
    modules ={'Frame1': [0, 'Main frame of Application', u'Frame1.py'], 
        'Frame2': [1, 'second frame of Application', u'Frame2.py'],
        'Frame3': [2, 'third frame of Application', u'Frame3.py']}
    
    class BoaApp(wx.App):
        def OnInit(self):
            self.main = Frame1.create(None)
            self.main.Show()
            self.SetTopWindow(self.main)
            return True
    
    def main():
        application = BoaApp(0)
        application.MainLoop()
    
    if __name__ == '__main__':
        main()
    thanks for answer
Working...