MDIChildframes schliessen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

Hallo

es soll ein Mainframe mit 2 Childframes (A, B) angezeigt werden:

Code: Alles auswählen

import  wx
    
class MainFrame(wx.MDIParentFrame):
    def __init__(self, tpos):
        wx.MDIParentFrame.__init__(self, None, -1, 
                                   "test", pos=tpos, size=(1280,924)
                                    #, style=wx.STAY_ON_TOP
                                    )
    def OnExit(self, evt):
        self.Close(True)



    #-----------Fenster A-----------------------------------------
    def makeB(self, evt):
        win1 = wx.MDIChildFrame(self, wx.ID_ANY, "A", (0,0), (400,300))
        panel1 = wx.Panel(win1, -1)
        panel1.SetBackgroundColour("White")
        panel1.Fit()
        win1.Show(True)

    #-----------Fenster B-----------------------------------------
    def makeB(self, evt):
        win2 = wx.MDIChildFrame(self, wx.ID_ANY, "DT", (20,20), (400,300))
        panel2 = wx.Panel(win2, -1)
        panel2.SetBackgroundColour("White")
        panel2.Fit()
        win2.Show(True)

        
    def OnCloseWindow(self, event):
        self.Destroy()
        self.InpTestWindowExists=False

#-----------------main----------------------------------------------------------
if __name__ == '__main__':
    class MyApp(wx.App):
        def OnInit(self):
            frame = MainFrame((0,0))
            frame.Show(True)
            self.SetTopWindow(frame)
            return True

    app = MyApp(False)
    app.MainLoop()
1. wie mache ich denn nun die Childframes sichtbar (generiere ein event worauf ein Handler dann..)
2. die Childframes sollen sich durch Drücken des 'Kreuzes rechts oben' schließen lassen, was muß ich
dazu hinschreiben (def OnCloseWindow(self, event) ist wohl für den MainFrame zuständig?)

Danke
joh
Zuletzt geändert von Anonymous am Donnerstag 13. Oktober 2011, 09:13, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Antworten