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
| #!/usr/bin/python
# -*- coding: iso-8859-15 -*-
# importation du module wx
import wx
# Création d'une classe MaFrame dérivé de wx.Frame
class MaFrame(wx.Frame):
# Initialisation
def __init__(self, title):
super(MaFrame, self).__init__(parent=None, id=wx.ID_ANY, title=title)
# Création d'une frameSizer horizontale
frameSizer=wx.BoxSizer(orient=wx.HORIZONTAL)
# Création d'un GridBagSizer
panelSizer=wx.GridBagSizer(vgap=5, hgap=5)
# Création d'un conteneur à l'intérieur de la Frame
container=wx.Panel(parent=self, id=wx.ID_ANY, size=self.GetClientSize())
# Création des boutons à l'intérieur du conteneur et positionnement de chaque bouton dans la GridBagSizer
Button1=wx.Button(parent=container, id=wx.ID_ANY, label=u"Bouton 1")
panelSizer.Add(item=Button1, pos=(0, 0), span=(2, 1), flag=wx.ALIGN_CENTRE)
Button2=wx.Button(parent=container, id=wx.ID_ANY, label=u"Bouton 2")
panelSizer.Add(item=Button2, pos=(0, 1), span=(2, 1), flag=wx.ALIGN_CENTRE)
Button3=wx.Button(parent=container, id=wx.ID_ANY, label=u"Bouton 3")
panelSizer.Add(item=Button3, pos=(2, 0), span=(2, 1), flag=wx.ALIGN_CENTRE)
Button4=wx.Button(parent=container, id=wx.ID_CLOSE, label=u"Bouton 4")
panelSizer.Add(item=Button4, pos=(2, 1), span=(2, 1), flag=wx.ALIGN_CENTRE)
# On autorise le redimensionnement des colonnes et des lignes
panelSizer.AddGrowableRow(0)
panelSizer.AddGrowableRow(1)
panelSizer.AddGrowableRow(2)
panelSizer.AddGrowableRow(3)
panelSizer.AddGrowableCol(0)
panelSizer.AddGrowableCol(1)
# On associe le GridBagSizer avec le conteneur
container.SetSizer(panelSizer)
# On ajoute le conteneur dans la frameSizer à orientation horizontale
frameSizer.Add(container, proportion=1, flag=wx.EXPAND)
# On lie la frameSizer à la Frame
self.SetSizer(frameSizer)
# On empêche un dimensionnement trop petit de la frameSizer
#frameSizer.SetSizeHints(self)
# On dimensionne notre Frame
self.SetSize((400, 250))
# événements des boutons, ((Seulement l'événement de fermeture pour le Button4)
Button4.Bind(wx.EVT_BUTTON, self.OnClose)
# Création de la méthode de classe associée à l'action du Button4
def OnClose(self, evt):
self.Destroy()
class MonApp(wx.App):
"""
Classe spécifique à l'application créée
"""
# Initialisation
def OnInit(self):
frame=MaFrame(u"Exemple d'une petite Appli")
# Affichage de la frame
frame.Show(True)
# On met la frame en fenêtre principale
self.SetTopWindow(frame)
return True
# Méthode de clôture
def OnExit(self):
result=wx.MessageDialog(parent=None, message="Au revoir", caption="Fermeture", style=wx.OK)
# Affichage du dialogue d'au revoir
result.ShowModal()
# Exécution du programme
app=MonApp(redirect=False)
app.MainLoop() |
Partager