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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
import wx
import wx.grid as gridlib
from random import randint
class MonApp(wx.App):
def OnInit(self):
# Création de la fenêtre principale
self.locale = wx.Locale(wx.LANGUAGE_FRENCH)
frame = MaFrame()
self.SetTopWindow(frame)
return True
class MaGrid(gridlib.Grid):
def __init__(self, parent):
gridlib.Grid.__init__(self,parent,-1)
self.SetDefaultCellFont(wx.Font( wx.FontInfo(16)))
self.SetLabelFont(wx.Font( wx.FontInfo(16)).Bold())
self.CreateGrid(2,2)
self.SetColLabelValue(0,"Col 1")
self.SetColLabelValue(1,"Col 2")
self.SetRowLabelSize(35)
self.SetColLabelSize(25)
self.SetDefaultCellAlignment(wx.ALIGN_CENTER,wx.ALIGN_CENTER)
self.DisableDragGridSize()
self.DisableDragColSize()
self.DisableDragRowSize()
self.EnableEditing(False)
self.SetSelectionMode(gridlib.Grid.GridSelectNone)
# self.SetMinSize((220,-1))
# self.ShowScrollbars(wx.SHOW_SB_NEVER,wx.SHOW_SB_ALWAYS)
self.nbdata = 0
self.parent = parent
def add_data(self,data):
""" Ajoute une donnée """
row = self.nbdata // 2
col = self.nbdata % 2
if row >= self.GetNumberRows():
self.AppendRows()
# frame = self.parent.GetParent()
# frame.sizer_gauche.Layout()
# frame.sizer_principal.Layout()
# frame.Fit()
self.SetCellValue(row,col,data)
self.nbdata += 1
class MaFrame(wx.Frame):
""" Fenêtre principale du programme. """
def __init__(self):
wx.Frame.__init__(self,None,-1,"Test grille")
#-----------------------------------------------------------------#
self.panel_gauche = wx.Panel(self,style=wx.BORDER_RAISED)
self.sizer_gauche = wx.BoxSizer(wx.VERTICAL)
self.grid = MaGrid(self.panel_gauche)
self.panel_1= wx.Panel(self.panel_gauche,style=wx.BORDER_SIMPLE)
self.panel_1.SetMinSize((-1,100))
self.sizer_gauche.Add(self.grid,1,flag =wx.EXPAND)
self.sizer_gauche.Add(self.panel_1,0,flag =wx.EXPAND)
self.panel_gauche.SetSizerAndFit(self.sizer_gauche)
#-----------------------------------------------------------------#
self.panel_centre = wx.Panel(self,style=wx.BORDER_RAISED)
self.sizer_centre = wx.BoxSizer(wx.VERTICAL)
sizer_bouton = wx.BoxSizer()
self.btn = wx.Button(self.panel_centre,-1,"Ajouter une donnée")
self.Bind(wx.EVT_BUTTON,self.on_btn,self.btn)
sizer_bouton.Add(self.btn,flag=wx.ALL,border=5)
self.panel_2 = wx.Panel(self.panel_centre,-1,style=wx.BORDER_SIMPLE)
self.panel_2.SetMinSize((200,200))
self.sizer_centre.Add(sizer_bouton,flag=wx.ALIGN_CENTER)
self.sizer_centre.Add(self.panel_2)
self.panel_centre.SetSizer(self.sizer_centre)
# Sizer principal
self.sizer_principal = wx.BoxSizer()
self.sizer_principal.Add(self.panel_gauche,1,flag=wx.EXPAND)
self.sizer_principal.Add(self.panel_centre)
self.SetSizer(self.sizer_principal)
self.Fit()
self.Show()
def on_btn(self,event):
data = str(randint(1,100))
self.grid.add_data(data)
if __name__ == "__main__":
programme = MonApp()
programme.MainLoop() |