IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxPython Discussion :

probleme lors de création une boite de dialogue pour menu ouvrir wxpython


Sujet :

wxPython

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Points : 28
    Points
    28
    Par défaut probleme lors de création une boite de dialogue pour menu ouvrir wxpython
    Bonjour ,

    j'essai de créer une simple application a l'aide de WXpython sous python3

    j'ai crée deux Panels avec un menu tout fonctionne bien mais lors de création d une boite de dialogue pour le menu 'Open' j'obtient un erreur spécifique !

    voilà mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    92
    93
     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)
            self.Bind(wx.EVT_OPEN, self.on_open_file)
            panel = MainPanel(self)
            sizer = wx.BoxSizer()
            sizer.Add(panel)
            self.SetSizerAndFit(sizer)
            self.Centre()
            self.Show()
     
        def on_quit_click(self, event):
     
            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)
            parent.Bind(wx.EVT_MENU,parent.on_open_file,id=wx.ID_OPEN)
            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()
    je suis nouvelle en wxpython . !!

    merci d'avance

  2. #2
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    Salut.

    Ça va être compliqué si tu n'as aucune expérience en poo de t'attaquer à une bibliothèque complexe comme wxPython.

    Bon, déjà, il est certain que la ligne 13

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.Bind(wx.EVT_OPEN, self.on_open_file)
    comprend 2 erreurs, wx.EVT_OPEN n'existe pas dans les constantes, et la méthode est indéfinie.

    D'après ce que je suppose tu désires obtenir est d'ouvrir l'explorateur de fichier qui est codé dans la méthode onOpen de la classe MenuBar, alors je pense que le bind dans la classe (L64) devrait pluôt être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.Bind(wx.EVT_MENU, self.onOpen,id=wx.ID_OPEN)
    Le temps ronge l'amour comme l'acide.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    voilà j'ai corrigé le code mais y a un message d erreur que je le comprend pas vraiment sur la ligne que j ai modifier : def onOpen (self, event):

    merci d avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    92
    93
    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)
            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):
     
            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)
            parent.Bind(wx.EVT_MENU, self.onOpen,id=wx.ID_OPEN)
            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()

  4. #4
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    Salut.

    Lorsqu'on a des messages d'erreurs, il est bien de justement montrer quelles erreurs python signale

    Dans ton code, il y a déjà une erreur d'indentation, puis comme précédemment une méthode indéfinie, et maintenant une autre erreur car tu as supprimé une ligne de ton code précédent, on ne sait pourquoi.

    Code corrigé syntaxiquement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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()
    Le temps ronge l'amour comme l'acide.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    pourquoi vous avez ajouter cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            new_menu_item = wx.MenuItem(File_menu,wx.ID_NEW)
    j'ai lancé le script mais encore une erreur :

    voilà code et l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    92
    93
    94
    95
    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)
            panel = MainPanel(self)
            sizer = wx.BoxSizer()
            sizer.Add(panel)
            self.SetSizerAndFit(sizer)
            self.Centre()
            self.Show()
     
        def on_quit_click(self, 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)
            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()
    l'erreur

    sur la ligne def onOpen ( self, event ) en rouge avec ce message d erreur :

    Nom : Capture du 2019-03-01 08-42-31.png
Affichages : 256
Taille : 7,0 Ko


    je m'excuse encore une fois

    merci

  6. #6
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par loula05 Voir le message
    pourquoi vous avez ajouter cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            new_menu_item = wx.MenuItem(File_menu,wx.ID_NEW)
    Bah parce que c'était une ligne de ton code initial (1er message), et que si on ne la met pas, on se retrouve avec une erreur...

    Citation Envoyé par loula05 Voir le message
    j'ai lancé le script mais encore une erreur :
    ...
    sur la ligne def onOpen ( self, event ) en rouge avec ce message d erreur
    Tu n'arrives pas à voir le problème ? Pourtant on visualise bien que la ligne def onOpen n'est pas sur le même alignement que la méthode def __init__ de la même classe. L'indentation en python est primordiale.
    Le temps ronge l'amour comme l'acide.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    bon enfin j'ai resolu le problème

    je tiens ç vous remerciez pour l'aide merci beaucoup

    voilà le code fonction maintenat je peux ouvrir la boite de dialog
    j'ai juste ajouté la ligne " parent.Bind(wx.EVT_MENU,self.on_open_file,id=wx.ID_OPEN) " dans la class menubar est ça marche maintenant


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    92
    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)
            panel = MainPanel(self)
            sizer = wx.BoxSizer()
            sizer.Add(panel)
            self.SetSizerAndFit(sizer)
            self.Centre()
            self.Show()
     
        def on_quit_click(self, event):
     
            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)
            parent.Bind(wx.EVT_MENU,self.on_open_file,id=wx.ID_OPEN)
            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 on_open_file (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()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/02/2009, 16h26
  2. probleme d'affichage d'une boite de dialogue
    Par grungy-soul dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/11/2008, 22h47
  3. [A-03]Ouvrir une boite de dialogue pour selectionner un fichier
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/10/2008, 14h26
  4. [Débutant] Ouvrir une boite de dialogue pour enregistrer un fichier
    Par pompier21 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 09/10/2008, 10h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo