begin process at 2010 03 16 00:00:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > TABLEAU AVEC WXPYTHON (WXGRID)

TABLEAU AVEC WXPYTHON (WXGRID)


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Classé sous :wxgrid, tableau, wxpython, aera, tutoriel Niveau :Débutant Date de création :09/04/2007 Vu / téléchargé :7 249 / 348

Auteur : aera group

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce programme permet de créé un tableau comme sous Excel, d'insérer autant de colonne et de lignes qu'il veut, puis sauvegarder et restituer son document. Il a été conçu avec WxPython. Si vous avez des remarques à faire, des idées pour l'améliorer, ça cera avec grand plaisir que je vous répondrai.

Source

  • import wx
  • import wx.grid as gridlib
  • import wx.lib.mixins.grid as mixins
  • import os
  • class Grid(gridlib.Grid):
  • def __init__(self, parent,li1,li2,sav):
  • gridlib.Grid.__init__(self, parent, -1,size=(800,300))
  • self.moveTo = None
  • self.po=[]
  • self.va=[]
  • lig=len(li2)
  • col=len(li1)
  • self.CreateGrid(lig, col)
  • i=0
  • while i<col:
  • self.SetColLabelValue(i, li1[i])
  • i=i+1
  • i=0
  • while i<lig:
  • self.SetRowLabelValue(i, li2[i])
  • i=i+1
  • self.SetColLabelAlignment(wx.ALIGN_LEFT, wx.ALIGN_BOTTOM)
  • self.Bind(gridlib.EVT_GRID_CELL_CHANGE, self.test)
  • if sav=='':
  • self.lis=''
  • else:
  • exec(sav)
  • self.lis=sav
  • def test(self,evt):
  • global listderem
  • value = self.GetCellValue(evt.GetRow(), evt.GetCol())
  • a=u'\nself.SetCellValue('+str(evt.GetRow())+u','+str(evt.GetCol())+ u',"'+str(value)+u'")'
  • self.lis=self.lis+a
  • listderem=self.lis
  • class Fentre_prin(wx.Frame):
  • def __init__(self, parent, title,li1,li2,par,sav):
  • wx.Frame.__init__(self, parent, -1, title,size=(500,500))
  • par.Destroy()
  • menuBar = wx.MenuBar()
  • menu = wx.Menu()
  • self.li1=li1
  • self.li2=li2
  • menu.Append(1,u"Quitter\tF4", u"Quitter le programme")
  • menu.AppendSeparator()
  • menu.Append(2,u"Sauvegarder", u"Sauvegarder les données")
  • aide = wx.Menu()
  • aide.Append(3,u"À propos de ...\tF1", u"Information sur le programme")
  • self.Bind(wx.EVT_MENU, self.quitter, id=1)
  • self.Bind(wx.EVT_MENU, self.test, id=2)
  • self.Bind(wx.EVT_MENU, self.ab, id=3)
  • menuBar.Append(menu, u"Fichier")
  • menuBar.Append(aide, u"Aide")
  • self.SetMenuBar(menuBar)
  • self.CreateStatusBar()
  • panel= wx.Panel(self)
  • text = wx.StaticText(panel, -1, u"Ceci un tableau créé avec WxPython et le module Grid")
  • text.SetSize(text.GetBestSize())
  • b1 = wx.Button(panel, -1, u"Quitter")
  • b2 = wx.Button(panel, -1, u"Sauvegarder")
  • a=Grid(panel,li1,li2,sav)
  • self.Bind(wx.EVT_BUTTON, self.quitter, b1)
  • self.Bind(wx.EVT_BUTTON, self.test, b2)
  • sizer = wx.BoxSizer(wx.VERTICAL)
  • sizer.Add(text, 0, wx.ALL, 10)
  • sizer.Add(b1, 0, wx.ALL, 10)
  • sizer.Add(b2, 0, wx.ALL, 10)
  • sizer.Add(a, 0, wx.ALL, 10)
  • panel.SetSizer(sizer)
  • panel.Layout()
  • def quitter(self, evt):
  • self.Close()
  • def test(self, evt):
  • global listderem
  • dlg = wx.FileDialog(
  • self, message=u"Exporter les données dans un fichier", defaultDir=os.getcwd(),
  • defaultFile="", wildcard=u"Fichier de sauvegarde du tableau (.savt)|*.savt|Tout les fichiers|*.*", style=wx.SAVE)
  • if dlg.ShowModal() == wx.ID_OK:
  • fichier = dlg.GetPath()
  • f=open(fichier,'w')
  • l1=str(self.li1)+'\n'
  • l2=str(self.li2)+'\n'
  • f.write('Tableau v1\n'.encode("windows-1252"))
  • f.write(l1.encode("windows-1252"))
  • f.write(l2.encode("windows-1252"))
  • f.write(listderem.encode("windows-1252"))
  • f.close()
  • def ab(self, evt):
  • dlg = wx.MessageDialog(self, u"Créé par Aéra group pour CodeS-SourceS.Version 1.0.1\nDéposer sur http://www.pythonfrance.com/",
  • u'À propos de ...',
  • wx.OK | wx.ICON_INFORMATION
  • )
  • dlg.ShowModal()
  • dlg.Destroy()
  • ###############################################
  • class Frame(wx.Frame):
  • def __init__(self, parent, title,li,no,nos,par,x,y):
  • wx.Frame.__init__(self, parent, -1, title,
  • pos=(x, y), size=(350, 450),style=wx.DEFAULT_DIALOG_STYLE)
  • self.li=li
  • self.no=no
  • self.nos=nos
  • par.Destroy()
  • panel = wx.Panel(self)
  • btn = wx.Button(panel, -1, u"Quitter")
  • self.b = wx.Button(panel, -1, u"Suivant")
  • self.b.Enable(False)
  • text1 = wx.StaticText(panel, -1, u"Nom de la "+self.no)
  • self.entree_1= wx.TextCtrl(panel, -1, u"", size=(200,-1))
  • self.entree_1.SetFocus()
  • btn1 = wx.Button(panel, -1, u"Ajouter")
  • btn1.SetDefault()
  • btn2 = wx.Button(panel, -1, u"Suprimer")
  • self.List = []
  • text2 = wx.StaticText(panel, -1, u"Liste des "+self.nos)
  • self.lb1 = wx.ListBox(panel, 60, (100, 50), (90, 120), self.List, wx.LB_SINGLE)
  • line = wx.StaticLine(panel, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
  • self.Bind(wx.EVT_BUTTON, self.quitter, btn)
  • self.Bind(wx.EVT_BUTTON, self.aj, btn1)
  • self.Bind(wx.EVT_BUTTON, self.su, btn2)
  • self.Bind(wx.EVT_BUTTON, self.si, self.b)
  • self.Bind(wx.EVT_LISTBOX, self.evte, self.lb1)
  • self.Bind(wx.EVT_MOVE, self.Move)
  • sizer = wx.BoxSizer(wx.VERTICAL)
  • boit1 = wx.BoxSizer(wx.HORIZONTAL)
  • boit1.Add(text1, 0, wx.ALL, 10)
  • boit1.Add(self.entree_1, 0, wx.ALL, 10)
  • sizer.Add(boit1, 0, wx.ALL, 10)
  • sizer.Add(btn1, 0, wx.ALL, 10)
  • sizer.Add(btn2, 0, wx.ALL, 10)
  • boit2 = wx.BoxSizer(wx.HORIZONTAL)
  • boit2.Add(text2, 0, wx.ALL, 10)
  • boit2.Add(self.lb1, 0, wx.ALL, 10)
  • sizer.Add(boit2, 0, wx.ALL, 10)
  • sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP, 5)
  • boit3 = wx.BoxSizer(wx.HORIZONTAL)
  • boit3.Add(btn, 0, wx.ALL, 10)
  • boit3.Add(self.b, 0, wx.ALL, 10)
  • sizer.Add(boit3, 0, wx.ALL|wx.CENTER, 10)
  • panel.SetSizer(sizer)
  • panel.Layout()
  • def quitter(self, evt):
  • self.Close()
  • def aj(self,evt):
  • if self.entree_1.GetValue()=='':
  • wx.Bell()
  • elif self.entree_1.GetValue() in self.List:
  • dlg = wx.MessageDialog(self, u"Vous avez déja rentrer ce nom",
  • u'Information',
  • wx.OK | wx.ICON_INFORMATION
  • )
  • dlg.ShowModal()
  • dlg.Destroy()
  • self.entree_1.Clear()
  • else:
  • a=self.entree_1.GetValue()
  • self.lb1.Append(a)
  • self.entree_1.Clear()
  • self.b.Enable(True)
  • self.List.append(a)
  • self.entree_1.SetFocus()
  • def su(self,evt):
  • try:
  • self.lb1.Delete(self.lb1.GetSelection())
  • self.List.remove(self.sel)
  • self.te()
  • except:
  • dlg = wx.MessageDialog(self, u"Vous n'avez pas sélectionné de "+ self.no,
  • u'Information',
  • wx.OK | wx.ICON_INFORMATION
  • )
  • dlg.ShowModal()
  • dlg.Destroy()
  • def te(self):
  • if len(self.List)==0:
  • self.b.Enable(False)
  • def evte(self, event):
  • self.sel=event.GetString()
  • def si(self,evt):
  • if self.li==[]:
  • frame = Frame(None, u"Étape 2 : Établir la liste des lignes",self.List,u'ligne',u'lignes',self,self.pos.x,self.pos.y)
  • frame.Show(True)
  • return True
  • else :
  • frame = Fentre_prin(None, u"Tableau",self.li,self.List,self,'')
  • frame.Show(True)
  • return True
  • def Move(self, event):
  • self.pos = event.GetPosition()
  • class debu(wx.Frame):
  • def __init__(self, parent, title):
  • wx.Frame.__init__(self, parent, -1, title,
  • pos=(150, 150), size=(100, 200),style=wx.DEFAULT_DIALOG_STYLE)
  • panel = wx.Panel(self)
  • btn = wx.Button(panel, -1, u"Quitter")
  • btn1 = wx.Button(panel, -1, u"Nouveau")
  • btn2 = wx.Button(panel, -1, u"Ouvrir")
  • self.Bind(wx.EVT_BUTTON, self.quitter, btn)
  • self.Bind(wx.EVT_BUTTON, self.a, btn1)
  • self.Bind(wx.EVT_BUTTON, self.b, btn2)
  • sizer = wx.BoxSizer(wx.VERTICAL)
  • sizer.Add(btn, 0, wx.ALL, 10)
  • sizer.Add(btn1, 0, wx.ALL, 10)
  • sizer.Add(btn2, 0, wx.ALL, 10)
  • panel.SetSizer(sizer)
  • panel.Layout()
  • def quitter(self, evt):
  • self.Close()
  • def a(self,evt):
  • frame = Frame(None, u"Étape 1 : Établir la liste des colonnes",[],u'colonne',u'colonnes',self,160, 150)
  • frame.Show(True)
  • return True
  • def b(self,evt):
  • dlg = wx.FileDialog(
  • self, message=u"Importer un fichier", defaultDir=os.getcwd(),
  • defaultFile="", wildcard=u"Fichier de sauvegarde du tableau (.savt)|*.savt|Tout les fichiers|*.*", style=wx.OPEN)
  • if dlg.ShowModal() == wx.ID_OK:
  • fichier = dlg.GetPaths()
  • fichier=fichier[0]
  • try:
  • f=open(fichier,'r')
  • except:
  • d = wx.MessageDialog(self, u"Une erreure est survenu. Imposible d'ouvrir le fichier choisi.",
  • u'Information',
  • wx.OK | wx.ICON_INFORMATION
  • )
  • d.ShowModal()
  • d.Destroy()
  • a0=f.readline()
  • if a0!='Tableau v1\n':
  • da = wx.MessageDialog(self, u"Ce n'est pas un fichier de sauvegarde tableau ...",
  • u'Information',
  • wx.OK | wx.ICON_INFORMATION
  • )
  • da.ShowModal()
  • da.Destroy()
  • else:
  • try:
  • a=eval(f.readline())
  • b=eval(f.readline())
  • c=f.read()
  • f.close()
  • frame = Fentre_prin(None, u"Tableau",a,b,self,c)
  • frame.Show(True)
  • return True
  • except:
  • dal = wx.MessageDialog(self, u"Une erreur non identifiée est survenu",
  • u'Information',
  • wx.OK | wx.ICON_INFORMATION
  • )
  • dal.ShowModal()
  • dal.Destroy()
  • class MyApp(wx.App):
  • def OnInit(self):
  • frame = debu(None, u"Début")
  • self.SetTopWindow(frame)
  • frame.Show(True)
  • return True
  • app = MyApp(True)
  • app.MainLoop()
import wx
import  wx.grid as  gridlib
import  wx.lib.mixins.grid as mixins
import os

class Grid(gridlib.Grid): 
    def __init__(self, parent,li1,li2,sav):
        gridlib.Grid.__init__(self, parent, -1,size=(800,300))
        
        self.moveTo = None

        self.po=[]
        self.va=[]

        lig=len(li2)
        col=len(li1)
        self.CreateGrid(lig, col)

        i=0
        while i<col:
            self.SetColLabelValue(i, li1[i])
            i=i+1
            
        i=0
        while i<lig:
            self.SetRowLabelValue(i, li2[i])
            i=i+1

        self.SetColLabelAlignment(wx.ALIGN_LEFT, wx.ALIGN_BOTTOM)
        self.Bind(gridlib.EVT_GRID_CELL_CHANGE, self.test)
        if sav=='':
            self.lis=''
        else:
            exec(sav)
            self.lis=sav

    def test(self,evt):
        global listderem
        value = self.GetCellValue(evt.GetRow(), evt.GetCol())
        a=u'\nself.SetCellValue('+str(evt.GetRow())+u','+str(evt.GetCol())+ u',"'+str(value)+u'")'
        self.lis=self.lis+a
        listderem=self.lis

        



class Fentre_prin(wx.Frame):
    def __init__(self, parent, title,li1,li2,par,sav):
        wx.Frame.__init__(self, parent, -1, title,size=(500,500))
        par.Destroy()

        menuBar = wx.MenuBar()

         
        menu = wx.Menu()
        
        self.li1=li1
        self.li2=li2

        
        menu.Append(1,u"Quitter\tF4", u"Quitter le programme")
        menu.AppendSeparator()
        menu.Append(2,u"Sauvegarder", u"Sauvegarder les données")

        aide = wx.Menu()
        aide.Append(3,u"À propos de ...\tF1", u"Information sur le programme")

        self.Bind(wx.EVT_MENU, self.quitter, id=1)
        self.Bind(wx.EVT_MENU, self.test, id=2)
        self.Bind(wx.EVT_MENU, self.ab, id=3)

        menuBar.Append(menu, u"Fichier")
        menuBar.Append(aide, u"Aide")
        self.SetMenuBar(menuBar)

        self.CreateStatusBar()


        panel= wx.Panel(self)

        text = wx.StaticText(panel, -1, u"Ceci un tableau créé avec WxPython et le module Grid")
        text.SetSize(text.GetBestSize())
        b1 = wx.Button(panel, -1, u"Quitter")
        b2 = wx.Button(panel, -1, u"Sauvegarder")
        a=Grid(panel,li1,li2,sav)

 
        self.Bind(wx.EVT_BUTTON, self.quitter, b1)
        self.Bind(wx.EVT_BUTTON, self.test, b2)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(text, 0, wx.ALL, 10)
        sizer.Add(b1, 0, wx.ALL, 10)
        sizer.Add(b2, 0, wx.ALL, 10)
        sizer.Add(a, 0, wx.ALL, 10)
        panel.SetSizer(sizer)
        panel.Layout()
        

        


    def quitter(self, evt):
        self.Close()
    def test(self, evt):
        global listderem
        dlg = wx.FileDialog(
            self, message=u"Exporter les données dans un fichier", defaultDir=os.getcwd(), 
            defaultFile="", wildcard=u"Fichier de sauvegarde du tableau (.savt)|*.savt|Tout les fichiers|*.*", style=wx.SAVE)
        
        if dlg.ShowModal() == wx.ID_OK:            
            fichier = dlg.GetPath()
            f=open(fichier,'w')
            l1=str(self.li1)+'\n'
            l2=str(self.li2)+'\n'
            f.write('Tableau v1\n'.encode("windows-1252"))
            f.write(l1.encode("windows-1252"))
            f.write(l2.encode("windows-1252"))
            f.write(listderem.encode("windows-1252"))
            f.close()
            
    def ab(self, evt):
        dlg = wx.MessageDialog(self, u"Créé par Aéra group pour CodeS-SourceS.Version 1.0.1\nDéposer sur http://www.pythonfrance.com/",
                               u'À propos de ...',
                               wx.OK | wx.ICON_INFORMATION
                               )
        dlg.ShowModal()
        dlg.Destroy()


###############################################

class Frame(wx.Frame):
    def __init__(self, parent, title,li,no,nos,par,x,y):
        wx.Frame.__init__(self, parent, -1, title,
                          pos=(x, y), size=(350, 450),style=wx.DEFAULT_DIALOG_STYLE)
        self.li=li
        self.no=no
        self.nos=nos
        par.Destroy()


        
        
        

        panel = wx.Panel(self)


        btn = wx.Button(panel, -1, u"Quitter")
        self.b = wx.Button(panel, -1, u"Suivant")
        self.b.Enable(False)
        text1 = wx.StaticText(panel, -1, u"Nom de la "+self.no)
        self.entree_1= wx.TextCtrl(panel, -1, u"", size=(200,-1))
        self.entree_1.SetFocus()
        btn1 = wx.Button(panel, -1, u"Ajouter")
        btn1.SetDefault()
        btn2 = wx.Button(panel, -1, u"Suprimer")
        self.List = []

        text2 = wx.StaticText(panel, -1, u"Liste des "+self.nos)
        self.lb1 = wx.ListBox(panel, 60, (100, 50), (90, 120), self.List, wx.LB_SINGLE)
        line = wx.StaticLine(panel, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
        
        self.Bind(wx.EVT_BUTTON, self.quitter, btn)
        self.Bind(wx.EVT_BUTTON, self.aj, btn1)
        self.Bind(wx.EVT_BUTTON, self.su, btn2)
        self.Bind(wx.EVT_BUTTON, self.si, self.b)
        self.Bind(wx.EVT_LISTBOX, self.evte, self.lb1)
        self.Bind(wx.EVT_MOVE, self.Move)



        sizer = wx.BoxSizer(wx.VERTICAL)
        boit1 = wx.BoxSizer(wx.HORIZONTAL)
        boit1.Add(text1, 0, wx.ALL, 10)
        boit1.Add(self.entree_1, 0, wx.ALL, 10)
        sizer.Add(boit1, 0, wx.ALL, 10)
        sizer.Add(btn1, 0, wx.ALL, 10)
        sizer.Add(btn2, 0, wx.ALL, 10)
        boit2 = wx.BoxSizer(wx.HORIZONTAL)
        boit2.Add(text2, 0, wx.ALL, 10)
        boit2.Add(self.lb1, 0, wx.ALL, 10)
        sizer.Add(boit2, 0, wx.ALL, 10)
        sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP, 5)
        boit3 = wx.BoxSizer(wx.HORIZONTAL)
        boit3.Add(btn, 0, wx.ALL, 10)
        boit3.Add(self.b, 0, wx.ALL, 10)
        sizer.Add(boit3, 0, wx.ALL|wx.CENTER, 10)
        panel.SetSizer(sizer)
        panel.Layout()


    def quitter(self, evt):
        self.Close()
        
    def aj(self,evt):
        if self.entree_1.GetValue()=='':
            wx.Bell()
        elif self.entree_1.GetValue() in self.List:
            dlg = wx.MessageDialog(self, u"Vous avez déja rentrer ce nom",
                               u'Information',
                               wx.OK | wx.ICON_INFORMATION
                               )
            dlg.ShowModal()
            dlg.Destroy()
            self.entree_1.Clear()
        else:
            a=self.entree_1.GetValue()
            self.lb1.Append(a)
            self.entree_1.Clear()
            self.b.Enable(True)
            self.List.append(a)
            self.entree_1.SetFocus()
        
    def su(self,evt):
        try:
            self.lb1.Delete(self.lb1.GetSelection())
            self.List.remove(self.sel)
            self.te()
        except:
            dlg = wx.MessageDialog(self, u"Vous n'avez pas sélectionné de "+ self.no,
                               u'Information',
                               wx.OK | wx.ICON_INFORMATION
                               )
            dlg.ShowModal()
            dlg.Destroy()

    def te(self):
        if len(self.List)==0:
          self.b.Enable(False)

    def evte(self, event):
        self.sel=event.GetString()
        
    def si(self,evt):        
        if self.li==[]:
           frame = Frame(None, u"Étape 2 : Établir la liste des lignes",self.List,u'ligne',u'lignes',self,self.pos.x,self.pos.y)
           frame.Show(True)
           return True
        else :
            frame = Fentre_prin(None, u"Tableau",self.li,self.List,self,'')
            frame.Show(True)
            return True
    def Move(self, event):
        self.pos = event.GetPosition()

class debu(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, -1, title,
                          pos=(150, 150), size=(100, 200),style=wx.DEFAULT_DIALOG_STYLE)

        panel = wx.Panel(self)

        btn = wx.Button(panel, -1, u"Quitter")
        btn1 = wx.Button(panel, -1, u"Nouveau")
        btn2 = wx.Button(panel, -1, u"Ouvrir")

        
        self.Bind(wx.EVT_BUTTON, self.quitter, btn)
        self.Bind(wx.EVT_BUTTON, self.a, btn1)
        self.Bind(wx.EVT_BUTTON, self.b, btn2)




        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(btn, 0, wx.ALL, 10)
        sizer.Add(btn1, 0, wx.ALL, 10)
        sizer.Add(btn2, 0, wx.ALL, 10)
        panel.SetSizer(sizer)
        panel.Layout()


    def quitter(self, evt):
        self.Close()
        
    def a(self,evt):
        frame = Frame(None, u"Étape 1 : Établir la liste des colonnes",[],u'colonne',u'colonnes',self,160, 150)
        frame.Show(True)
        return True
    
    def b(self,evt):
        dlg = wx.FileDialog(
            self, message=u"Importer un fichier", defaultDir=os.getcwd(), 
            defaultFile="", wildcard=u"Fichier de sauvegarde du tableau (.savt)|*.savt|Tout les fichiers|*.*", style=wx.OPEN)
        
        if dlg.ShowModal() == wx.ID_OK:
            fichier = dlg.GetPaths()
            fichier=fichier[0]
            try:
                f=open(fichier,'r')

            except:
              d = wx.MessageDialog(self, u"Une erreure est survenu. Imposible d'ouvrir le fichier choisi.",
                               u'Information',
                               wx.OK | wx.ICON_INFORMATION
                               )
              d.ShowModal()
              d.Destroy()
            a0=f.readline()

            if a0!='Tableau v1\n':
                    da = wx.MessageDialog(self, u"Ce n'est pas un fichier de sauvegarde tableau ...",
                                   u'Information',
                                   wx.OK | wx.ICON_INFORMATION
                                   )
                    da.ShowModal()
                    da.Destroy()
            else:
                    try:
                        a=eval(f.readline())
                        b=eval(f.readline())
                        c=f.read()
                        f.close()
                        frame = Fentre_prin(None, u"Tableau",a,b,self,c)
                        frame.Show(True)
                        return True
                    except:
                       dal = wx.MessageDialog(self, u"Une erreur non identifiée est survenu",
                                   u'Information',
                                   wx.OK | wx.ICON_INFORMATION
                                   )
                       dal.ShowModal()
                       dal.Destroy() 





class MyApp(wx.App):
    def OnInit(self):
        frame = debu(None, u"Début")
        self.SetTopWindow(frame)
        frame.Show(True)
        return True
        
app = MyApp(True)
app.MainLoop()

 Conclusion

POUR CEUX QUI DÉSIR TÉLÉCHARGER WX.PYTHON :

Allez sur le site http://www.wxpython.org/download.php et sélectionner la version correspondant à votre version de Python et à votre système d'exploitation.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture GESTIONNAIRE DE FICHIERS MUSICAUX
Source avec Zip TUTORIEL - INTRODUCTION À WXPYTHON
Source avec Zip Source avec une capture CARNET D'ADRESSE
Source avec Zip Source avec une capture SIMULATION DE LOTO
Source avec Zip TUTORIEL - COMPILATION AVEC PY2EXE

 Sources de la même categorie

CALCULATRICE, INTRODUCTION AU LAMBDA par xeolin
UTILISATION DES PROPRIÉTÉS EN PYTHON par FloZix
UNIX - MODULE TIME : TEMPS D'UNE FONCTION ALGORITHMIQUE AVEC... par loupmagic
Source avec Zip TUTORIEL - INTRODUCTION À WXPYTHON par aera group
Source avec Zip TUTORIEL - COMPILATION AVEC PY2EXE par aera group

 Sources en rapport avec celle ci

Source avec Zip TUTORIEL - INTRODUCTION À WXPYTHON par aera group
Source avec Zip Source avec une capture CARNET D'ADRESSE par aera group
Source avec Zip Source avec une capture SIMULATION DE LOTO par aera group
Source avec Zip TUTORIEL - COMPILATION AVEC PY2EXE par aera group
Source avec Zip Source avec une capture ANAGRAMME PLUS! par DoudouBidou

Commentaires et avis

Commentaire de aera group le 09/04/2007 19:01:15

Je précise que si j'ai créé ce code et si je l'ai mis sur ce site c'est surtout pour mettre un exemple sur le wx.grid et pour les classes.

Commentaire de xeolin le 14/04/2007 01:25:50

Bravo aéra, et merci pour cet exemple : je vais peut-être me mettre au Wx

question : Wx fonctionne sous toute les plateformes non ?

ce vaut un petit 9/10


Xeolin

Commentaire de aera group le 14/04/2007 12:13:33

Personellement, je ne travail que sous Windows, mais je sais que WxPython fonctionne sous Linux et donc sans doute sous Mac (pour les ordis Apple). En tout cas, merci pour cette note. Tu verras, WxPython est un peux dure à métriser au début, mais avec les exemple dans le zip de démo (téléchargable sur http://www.wxpython.org/download.php), on arrive assez facilement à créé de petite application simpa comme celle-ci (bon d'accord, elle ne sert pas à grand chose, mais ça permet de voir un petit exemple avec wx.grid qui n'est pas le widget le plus simple sous wx). Si tu as besoin d'aide, n'ésite pas à me contacter (c'est valable également pour les autres - vive le forum !!!) mais n'attend pas de réponse avant le 1er mai (vive les vacances :)). Tu veras, WxPython est bien mieux que Tkinter.
Bon courrage
_____
Aéra

Commentaire de mouss11 le 16/04/2007 09:30:42

Je travail aussi sous wxPython qui fait tout ce qu'on lui demande (Même si la transparence est très mal gérée).
Je confirme que ça marche sous linux (déjà utilisé), pour MAC je ne suis pas sur.

Donc juste pour dire qu'il existe un RAD pour wxPython -> BOA constructor http://boa-constructor.sourceforge.net/
Très pratique pour les feignasses comme moi ;) Sinon souvent bienvenue pour les débutants.
(Mais interfaces un peu rebutante au début, en fait il y a simplement un petit bouton (trop discret?) avec une petite flèche pour utiliser l'outil de dessin qui apparait à l'utilisation d'une frame ou autre)

Sinon merci à toi et aux autres pour vos sources.

Mouss

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

[WxPython] Tableau wxGrid [ par Jeannine123 ] Bonjour a tous ;)Alors voila je vous explique mon problème, j'ai créé un tableau avec la classe (wx.Grid) de WxPython.J'importe dans mon tableau des d Problème avec GTK [ par gaillus ] Bonjour,j'utilise python avec GTK.Voici mon pb:j'ai une fonction "init_tableau" dans laquelle j'instancie une classe "tablo" qui hérite de gtk.Dialog. intégrale [ par phymed ] Bonjours a tous, je débute en python, et j'ai un petit problème: j'ai une fonction P(x)et je dois calculer et enregistrer dans un tableau chaque vale numpy tableau [ par phymed ] Bonjours je débute en python et je n'arrive pas a trouver la fonction qui me permet d'ajouter des tableaux entre eux. En gros j'ai : a=([1,2,3]) b=([4 wxPython et DDE [ par DoudouBidou ] Bonjour,j'utilise la liaison DDE pour dialoguer entre python et une application sous windows 2000j'ai trouvé (un peu par hasard) un module DDE pour gé [wxPython] apperçu avant impression multipages [ par dj_djocker ] au secour!!!!!!une semaine que je cherche partout mais rien a faire.a travers un logiciel cr&#233;e en python je cr&#233;e une impression d'au moins u wxPython [ par MHI ] Bonjour Je recherche une doc en fran&#231;ais expliquant simplement comment cr&#233;&#233; une fen&#234;tre, des boutons et une listebox avec wxPython wxpython : afficher et effacer des images [ par steede ] Bonjour,J'ai besoin dans mon application d'affiicher des images et de les remplacer par d'autres en fonction des clics de la souris.Je sais les affich Un Canvas comme dans Tkinter, mais pour wxPython [ par samurize ] Slt tout le monde. &nbsp; Voila tout est dans le titre (ou a peu pres&nbsp; ) : &nbsp; Je suis &#224; la recherche d'un module pouvant s'integrer da


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales