Accueil > > > TABLEAU AVEC WXPYTHON (WXGRID)
TABLEAU AVEC WXPYTHON (WXGRID)
Information sur la source
Description
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.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
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ée en python je crée une impression d'au moins u
wxPython [ par MHI ]
Bonjour Je recherche une doc en français expliquant simplement comment créé une fenê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. Voila tout est dans le titre (ou a peu pres ) : Je suis à la recherche d'un module pouvant s'integrer da
|
Derniers Blogs
[WINDOWSPHONE7] LECTEUR DE FLUX RSS[WINDOWSPHONE7] LECTEUR DE FLUX RSS par Vko
Parce que j'aime pas tester à moitié, je me suis amusé à développer un petit lecteur de flux RSS avec un look qui vous rappellera surement quelque chose :) La RC de Visual Studio est plutôt molle mais fonctionne correctement. L'émulateur est pas...
Cliquez pour lire la suite de l'article par Vko [WP7] L'éMULATEUR WINDOWS PHONE 7 EST MULTITâCHE[WP7] L'éMULATEUR WINDOWS PHONE 7 EST MULTITâCHE par KooKiz
Une question qui reste en suspend concernant Windows Phone 7 est de savoir si le système permettra à plusieurs applications de s'exécuter simultanément, ou si un système de mise en pause similaire à celui de l'iPhone sera adopté. Même si cela ne perm...
Cliquez pour lire la suite de l'article par KooKiz PRéSENTATION CLUB MOSS CE JOUR "LA NOUVELLE ARCHITECTURE DE SERVICES SHAREPOINT 2010".PRéSENTATION CLUB MOSS CE JOUR "LA NOUVELLE ARCHITECTURE DE SERVICES SHAREPOINT 2010". par Patrick Guimonet
Ca y est la sortie RTM de SharePoint 2010 est annoncée pour le 16 avril 2010 (annonce faite ce jour par Erol Giraudy lors de la réunion du club MOSS). Vous pourrez trouver ici les slides de ma présentation du jour dans le cadre du club MOSS : 201...
Cliquez pour lire la suite de l'article par Patrick Guimonet [WINDOWPHONE7] PREMIERS PAS[WINDOWPHONE7] PREMIERS PAS par Vko
Hop voici les premiers pas avec les outils de développement pour Windows Phone 7. Premier changement suite à l'installation des outils : les type de projets pour la plateforme Windows Phone 7. Les projets se découpent en deux groupes : Les projet...
Cliquez pour lire la suite de l'article par Vko [WP7] LE SDK DE WINDOWS PHONE 7 EST DISPONIBLE ![WP7] LE SDK DE WINDOWS PHONE 7 EST DISPONIBLE ! par KooKiz
Comme le titre l'indique, une première CTP du kit de développement pour Windows Phone 7 est disponible. Basé sur Visual Studio 2010 Express, il propose de développer des applications pour WP7 en Silverlight ou XNA 4. Un émulateur est bien entendu de l...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
Comparez les prix

HTC Magic
Entre 429€ et 429€
|