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
|
# !/usr/bin/python
# coding: utf-8
import wx
class Nbres(wx.Frame):
def __init__(self, parent, titre):
super(Nbres, self).__init__(parent, title=titre, size=(400, 100))
self.dys_color=['RED','GREEN','BLUE']
self.InitUi()
self.Centre()
self.Show()
def InitUi(self):
self.panel = wx.Panel(self, -1)
self.font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
self.font.SetPointSize(21)
self.nbre = 0
#
#-- le sizer final
self.vbox = wx.BoxSizer(wx.VERTICAL)
#
#-- le premier.
self.hbox_1 = wx.BoxSizer(wx.HORIZONTAL)
#
self.stat_texte = wx.StaticText(self.panel, label = "Premier nombre ")
self.stat_texte.SetFont(self.font)
#
self.hbox_1.Add(self.stat_texte, 0,flag = wx.LEFT, border = 8)
self.le_nombre = wx.TextCtrl(self.panel,-1, "" ,style= wx.TE_RICH)
self.le_nombre.SetFont(self.font)
self.le_nombre.Bind(wx.EVT_CHAR, self.onCharEvent)
self.hbox_1.Add(self.le_nombre, 1)
# -- dans la boite
#
self.vbox.Add(self.hbox_1)
#
# boutons pour accord ou modifications
#
# boite horizontale , puis les trois boutons
#
self.hbox_3 = wx.BoxSizer(wx.HORIZONTAL)
#
self.sizer_btn = wx.GridSizer(1, 3)
#
self.btn1 = wx.Button(self.panel, label="A l'operation")
self.btn2 = wx.Button(self.panel, label='Corriger')
self.btn3 = wx.Button(self.panel, label='Quitter')
#
self.btn1.Bind(wx.EVT_BUTTON, self.Operation)
self.btn2.Bind(wx.EVT_BUTTON, self.Corriger)
self.btn3.Bind(wx.EVT_BUTTON, self.Je_quitte)
#
# emboiter
self.sizer_btn.AddMany([self.btn1, self.btn2, self.btn3])
self.hbox_3.Add(self.sizer_btn, 0, wx.ALL, 10)
#
self.vbox.Add(self.hbox_3)
self.panel.SetSizer(self.vbox)
def onCharEvent(self, event): # voir wx.KeyEvent
keycode = event.GetKeyCode()
if keycode in range(48, 58):
self.nbre = self.nbre + 1
# car trois couleurs
if self.nbre == 3:
#
#pour repartir à la première
#
self.nbre = 0
self.le_nombre.SetForegroundColour(self.dys_color[self.nbre-1])
# tous les chiffres de la même couleur
#
# en remplaçant la ligne précédente par celle-ci
#self.le_nombre.SetStyle(self.nbre - 1, self.nbre, wx.TextAttr(self.dys_color[self.nbre -1]))
# les chiffres ne changnet pas de couleur..
#
print self.nbre
event.Skip()
def Operation(self , event):
print self.le_nombre.GetValue()
def Je_quitte(self, event):
print('Bye')
self.Destroy()
def Corriger(self, event):
self.le_nombre.SetValue('')
if __name__ == '__main__':
app = wx.PySimpleApp()
Nbres(None, "nombre")
app.MainLoop() |
Partager