wxPython - GridSizer

Comme son nom l'indique, un GridSizerobjet présente une grille bidimensionnelle. Les contrôles sont ajoutés dans la fente de la grille dans l'ordre de gauche à droite et de haut en bas. L'objet GridSizer prend quatre paramètres -

wx.GridSizer(rows, columns, vgap, hgap)

Les paramètres vgap et hgap contrôlent l'espacement vertical et horizontal entre les commandes adjacentes.

Le tableau suivant montre quelques méthodes importantes de la classe wxGridSizer -

SN Méthodes et description
1

Add()

Ajoute un contrôle dans le prochain emplacement de grille disponible

2

AddMany()

Ajoute chaque élément dans la liste des contrôles

3

SetRows()

Définit le nombre de lignes dans le calibreur

4

GetRows()

Récupère le nombre de lignes dans le sizer

5

SetCols()

Définit le nombre de colonnes dans le sizer

6

GetCols()

Récupère le nombre de colonnes en taille

sept

SetVGap()

Définit l'écart vertical (en pixels) entre les cellules

8

GetVGap()

Renvoie la valeur de vgap entre les cellules

9

SetHGap()

Définit l'écart horizontal (en pixels) entre les cellules

dix

GetHGap()

Renvoie la valeur de hgap entre les cellules

Le code suivant illustre un quadrillage simple d'une grille 4 par 4 avec un écart vertical et horizontal de 5 pixels.

Gs = wx.GridSizer(4, 4, 5, 5)

Seize objets bouton sont successivement ajoutés en utilisant une boucle «for».

for i in range(1,17): 
   btn = "Btn"+str(i) 
   gs.Add(wx.Button(p,label = btn),0,wx.EXPAND)

Le code complet est le suivant -

import wx
  
class Example(wx.Frame): 
   
   def __init__(self, parent, title): 
      super(Example, self).__init__(parent, title = title,size = (300,200)) 
             
      self.InitUI() 
      self.Centre() 
      self.Show()      
         
   def InitUI(self): 
	
      p = wx.Panel(self) 
         
      gs = wx.GridSizer(4, 4, 5, 5) 
		
      for i in range(1,17): 
         btn = "Btn"+str(i) 
         gs.Add(wx.Button(p,label = btn),0,wx.EXPAND) 

         p.SetSizer(gs)  
   
app = wx.App() 
Example(None, title = 'Grid demo') 
app.MainLoop()

Le code ci-dessus produit la sortie suivante -