Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/04/2008, à 19:48

dayiri

Wxpython

Salut,

je suis un débutant en wxpython et je voudrais savoir après avoir créé des écran, comment les lier aux éléments des menus. merci

Hors ligne

#2 Le 28/04/2008, à 23:58

thibaultg

Re : Wxpython

Un petit exemple:

import wx

ID_Menu3_Save       = 5555
ID_Menu_New         = 5004
ID_Menu_Exit        = 5005
ID_Menu_Ajout       = 5006
ID_Menu_Ajout2      = 5007
ID_Menu_Delete      = 5008
ID_Menu_Save        = 5009
ID_Menu_Load        = 5010
ID_Menu_Couper      = 5011
ID_Menu_Paste       = 5012
#----------------------------------------------------------------------

class myFrame(wx.Frame):

    def __init__(self ): 
        wx.Frame.__init__(self,None,-1,'Frame',size=(550,350))



        ###definition du menu###
 
        menu = wx.Menu()


        menu.Append(ID_Menu_New, "Nouvelle fenetre interne")
        menu.Append(ID_Menu_Save, "Save\tCTRL+s")#raccourci CTRL+s
        menu.Append(ID_Menu_Load, "Load\tCTRL+l")
        menu.Append(ID_Menu_Ajout, "Ajout d un echantillon\tCTRL+e")
        menu.Append(ID_Menu_Ajout2, "Ajout d un groupe\tCTRL+g")
        menu.Append(ID_Menu_Delete, "Delete node\tCTRL+d")
        menu.AppendSeparator()
        menu.Append(ID_Menu_Exit, "Exit\tCTRL+w")


        edition=wx.Menu()

        edition.Append(ID_Menu_Couper, "Couper\tCTRL+x")
        edition.Append(ID_Menu_Paste, "Paste\tCTRL+v")



        menubar = wx.MenuBar()
        menubar.Append(menu, "&File")
        menubar.Append(edition, "Edition")
        self.SetMenuBar(menubar)





        ###Action lie au menu###

        self.Bind(wx.EVT_MENU, self.OnNewWindow, id=ID_Menu_New)
        self.Bind(wx.EVT_MENU, self.Save, id=ID_Menu_Save)
        self.Bind(wx.EVT_MENU, self.Load,id=ID_Menu_Load)
        self.Bind(wx.EVT_MENU, self.Ajout_sample, id=ID_Menu_Ajout)
        self.Bind(wx.EVT_MENU, self.Delete, id=ID_Menu_Delete)
        self.Bind(wx.EVT_MENU, self.Couper, id=ID_Menu_Couper)
        self.Bind(wx.EVT_MENU, self.Paste, id=ID_Menu_Paste)
        self.Bind(wx.EVT_MENU, self.OnExit, id=ID_Menu_Exit)

#Les fonction qui sont appeler lorqu'on clique sur le menu

    def OnNewWindow(self,evt):
         print "coucou"
    def Save(self,evt):
         print "coucou"
    def Load(self,evt):
        re=wx.FileDialog(self, "Charger le fichier xml", wildcard="*.*", style=wx.OPEN)
        reponse4=re.ShowModal()
        name_Path=re.GetPath()#recupere le chemin du fichier
        name_sample=re.GetFilename()#recupere le nom du fichier
        re.Destroy()
        if (reponse4==5100):#si on clique sur open
                print name_Path," ",name_sample

    def Ajout_sample(self,evt):
        choices = [ 'Groupe0', 'Echantillon1', 'Delete2' ]
        dialog = wx.SingleChoiceDialog (None, 'Pick something....', 'Dialog Title', choices)
        reponse=dialog.ShowModal()
        if (reponse == wx.ID_OK):
            if (dialog.GetSelection()==0):#clique sur Groupe0
                print dialog.GetSelection()

            elif (dialog.GetSelection()==1):#clique sur Echantillon1
                print dialog.GetSelection()

            elif (dialog.GetSelection()==2):#clique sur Delete
                print dialog.GetSelection()

    def Delete(self,evt):
          message=wx.MessageDialog(self, "Impossible", "Message d'erreur")
          message.ShowModal()
          message.Destroy()
    def Couper(self,evt):
         print "coucou"
    def Paste(self,evt):
         print "coucou"
    def OnExit(self,evt):
         self.Close(True)



class App(wx.App):

    def OnInit(self):
        frame = myFrame()
        self.SetTopWindow(frame)
        frame.Show(True)
        return True

if __name__=='__main__':
    app = App(0)
    app.MainLoop()

Dernière modification par thibaultg (Le 29/04/2008, à 00:03)

Hors ligne

#3 Le 04/05/2008, à 16:49

dayiri

Re : Wxpython

Ok, merci ça marche

Hors ligne