import wx
provider = wx.SimpleHelpProvider()
wx.HelpProvider_Set(provider)
class Dialoge(wx.Dialog):
def __init__(
self, parent, ID, title, size=wx.DefaultSize, pos=wx.DefaultPosition,
style=wx.DEFAULT_DIALOG_STYLE
):
pre = wx.PreDialog()
pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
pre.Create(parent, ID, title, pos, size, style)
self.PostCreate(pre)
sizer = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "Un petit texte d'introduction")
label.SetHelpText("C'est un wx.StaticText")
sizer.Add(label, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
box = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Entrer n°1 :")
label.SetHelpText("C'est toujours un wx.StaticText")
box.Add(label, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
text = wx.TextCtrl(self, -1, "", size=(80,-1))
text.SetHelpText("Voici l'Entrer n°1")
box.Add(text, 1, wx.ALIGN_CENTRE|wx.ALL, 5)
sizer.Add(box, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
box = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Entrer n°2 :")
label.SetHelpText("Encore toujours un wx.StaticText ; C'est l'équivalent du Label sur Tk")
box.Add(label, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
text = wx.TextCtrl(self, -1, "", size=(80,-1))
text.SetHelpText("Voici l'Entrer n°2 ; Il s'agit d'un wx.TextCtrl ; Son équivalent en Tk est : l'entry")
box.Add(text, 1, wx.ALIGN_CENTRE|wx.ALL, 5)
sizer.Add(box, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
line = wx.StaticLine(self, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP, 5)
btnsizer = wx.StdDialogButtonSizer()
if wx.Platform != "__WXMSW__":
btn = wx.ContextHelpButton(self)
self.box.Add(btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
box = wx.BoxSizer(wx.HORIZONTAL)
btn = wx.Button(self, wx.ID_OK,"Ok")
btn.SetHelpText("Valider")
btn.SetDefault()
box.Add(btn, 0, wx.ALIGN_LEFT)
btn = wx.Button(self, wx.ID_CANCEL, "Annuler")
btn.SetHelpText("Quitter sans rien valider")
box.Add(btn, 0, wx.ALIGN_RIGHT)
sizer.Add(box, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
sizer.Add(btnsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
self.SetSizer(sizer)
sizer.Fit(self)
class Frame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title,size=((200, 200)))
panel = wx.Panel(self)
bouton1 = wx.Button(panel, -1, "Boite de dialogue 1")
bouton2 = wx.Button(panel, -1, "Boite de dialogue 2")
bouton3 = wx.Button(panel, -1, "Quitter")
self.Bind(wx.EVT_BUTTON, self.dialogue1, bouton1)
self.Bind(wx.EVT_BUTTON, self.dialogue2, bouton2)
self.Bind(wx.EVT_BUTTON, self.quitter, bouton3)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(bouton1, 0, wx.ALL|wx.CENTER, 10)
sizer.Add(bouton2, 0, wx.ALL|wx.CENTER, 10)
sizer.Add(bouton3, 0, wx.ALL|wx.CENTER, 10)
panel.SetSizer(sizer)
panel.Layout()
self.Centre()
def dialogue1(self, evt):
dia=wx.MessageDialog(self, "Voici une boite de dialogue classique", caption = "Info", style = wx.CANCEL|wx.OK,
pos = wx.DefaultPosition)
valeur = dia.ShowModal()
if valeur == wx.ID_OK:
print "Vous avez appuyé sur ''Ok''"
else:
print "Vous avez appuyé sur ''Annuler''"
def dialogue2(self, evt):
dlg = Dialoge(self, -1, "Voici le titre", size=(350, 200),
#style = wx.CAPTION | wx.SYSTEM_MENU | wx.THICK_FRAME
style = wx.DEFAULT_DIALOG_STYLE
)
dlg.CenterOnScreen()
val = dlg.ShowModal()
if val == wx.ID_OK:
print "Vous avez appuyé sur ''Ok''"
else:
print "Vous avez appuyé sur ''Annuler''"
def quitter(self, evt):
self.Close()
class MyApp(wx.App):
def OnInit(self):
frame = Frame(None, "Test")
self.SetTopWindow(frame)
frame.Show(True)
return True
app = MyApp(True)
app.MainLoop()
|