1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
   | import wx
 
class MainFrame(wx.Frame):
 
    def __init__(self, *args, **kwargs):
        super(MainFrame, self).__init__(None, *args, **kwargs)
        self.Title = 'premier app (Menu+2windows)'
        self.SetMenuBar(MenuBar(self))
        self.ToolBar = MainToolbar(self)
        self.status_bar = StatusBar(self).status_bar
        self.Bind(wx.EVT_CLOSE, self.on_quit_click)
        # Y a pas de méthode onOpen dans cette classe !
        # self.Bind(wx.EVT_MENU, self.onOpen)
        panel = MainPanel(self)
        sizer = wx.BoxSizer()
        sizer.Add(panel)
        self.SetSizerAndFit(sizer)
        self.Centre()
        self.Show()
 
    def on_quit_click(self, event):
        # A quoi sert de supprimer l'event ? Cela est fait automatiquement par python, donc inutile
        #del event
        wx.CallAfter(self.Destroy)
 
 
class MainPanel(wx.Panel):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent,size = (500,500))
        self.splitter = wx.SplitterWindow(self, -1, size = (500,500))
        # 1er panel
        pan1 = wx.Window(self.splitter, style=wx.BORDER_SUNKEN)
        pan1.SetBackgroundColour("yellow")
        wx.StaticText(pan1, -1)
        #2em panel
        pan2 = wx.Window(self.splitter, style=wx.BORDER_SUNKEN)
        pan2.SetBackgroundColour("blue")
        wx.StaticText(pan2, -1)
        self.splitter.SplitVertically(pan1, pan2, 100)
 
 
class MenuBar(wx.MenuBar):
    """creation de menu."""
    def __init__(self, parent, *args, **kwargs):
        super(MenuBar, self).__init__(*args, **kwargs)
        #  menu
        File_menu = wx.Menu()
        Edit_menu = wx.Menu()
        View_menu = wx.Menu()
        Help_menu = wx.Menu()
 
        self.Append(File_menu, '&File')
        self.Append(Edit_menu, '&Edit')
        self.Append(View_menu, '&View')
        self.Append(Help_menu, '&Help')
 
        quit_menu_item = wx.MenuItem(File_menu, wx.ID_EXIT)
        parent.Bind(wx.EVT_MENU, parent.on_quit_click, id=wx.ID_EXIT)
        open_menu_item = wx.MenuItem(File_menu, wx.ID_OPEN)
        self.Bind(wx.EVT_MENU, self.onOpen, id=wx.ID_OPEN)
        # Pourquoi avoir supprimé cette ligne ci-dessous ?
        new_menu_item = wx.MenuItem(File_menu, wx.ID_NEW)
        File_menu.Append(open_menu_item)
        File_menu.Append(new_menu_item)
        File_menu.Append(quit_menu_item)
 
    def onOpen (self, event):
        dlg = wx.FileDialog(
            self, message="Choose file", defaultDir = "D:/home/sarah/",
            defaultFile = "", wildcard = "", style=wx.FD_OPEN
        )
        if dlg.ShowModal() == wx.ID_OK:
            print(dlg.GetDirectory(), dlg.GetFilename())
        dlg.Destroy()
 
 
class MainToolbar(wx.ToolBar):
     def __init__(self, parent, *args, **kwargs):
        super(MainToolbar, self).__init__(parent, *args, **kwargs)
 
 
class StatusBar(object):
    def __init__(self, parent):
        self.status_bar = parent.CreateStatusBar()
 
 
if __name__ == '__main__':
    """Run the application."""
    screen_app = wx.App()
    main_frame = MainFrame()
    screen_app.MainLoop() | 
Partager