Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1233 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  allo, à l'huile

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

allo, à l'huile

n°2118246
radezleb
Elu peuple de l'année 2013
Posté le 24-12-2011 à 19:56:25  profilanswer
 

Bon en gros j'ai un partiel de progra qui m'attends et pour m'entraîner je fais d'anciens anal  [:cerveau goatse]  
Il y a un exo ou je suis bloqué sur un détail:
 
Ecrire un programme qui permet dans une fenêtre de simuler le fonctionnement d'un
téléphone mobile. La fenêtre contiendra une zone de texte qui affichera le numéro composé,
des boutons pour les touches 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, une touche "Corriger" et une touche
"Appeler". L’utilisateur emploiera les touches pour saisir le numéro. Celui-ci s’affichera au
fur et à mesure de la saisie avec un espace après chaque groupe de 2 chiffres, par exemple : 01
23 45 67 89.
La touche "Corriger" permettra de supprimer le dernier chiffre correspondant à
la dernière touche qui avait été appuyée. L'utilisateur appuiera sur la touche "Appeler "
lorsqu'il aura rentré son numéro. Si le numéro contient 10 chiffres, on affichera dans la zone
de texte "Appel". Si le numéro ne contient pas 10 chiffres, on affichera dans la zone de texte
"numéro incorrect". Le fait d’appuyer sur la touche "Corriger" permettra alors de faire
réapparaître le numéro pour modifier la saisie.
 
Dois je créer une fonction texte ou bien je dois créer des boucles à chaque bouton ?
bref je suis completement perdu  
 
Joyeux noel à tous  [:radezleb]  

Code :
  1. from pylab import *
  2. import wx
  3. class MaFenetre(wx.Frame):
  4.     def __init__(self):
  5.         wx.Frame.__init__(self, parent=None, title="Ma Fenetre" )
  6.         self.sizer = wx.BoxSizer(wx.HORIZONTAL)
  7.        
  8.         self.n=[]
  9.        
  10.         self.bouton0 = wx.Button(parent=self, label="0" )
  11.         self.bouton0.Bind(wx.EVT_BUTTON, self.OnButtonPush0)
  12.         self.sizer.Add(self.bouton0, proportion=1, flag=wx.EXPAND)
  13.        
  14.         self.bouton1 = wx.Button(parent=self, label="1" )
  15.         self.bouton1.Bind(wx.EVT_BUTTON, self.OnButtonPush1)
  16.         self.sizer.Add(self.bouton1, proportion=1, flag=wx.EXPAND)
  17.         self.bouton2 = wx.Button(parent=self, label="2" )
  18.         self.bouton2.Bind(wx.EVT_BUTTON, self.OnButtonPush2)
  19.         self.sizer.Add(self.bouton2, proportion=1, flag=wx.EXPAND)
  20.         self.bouton3 = wx.Button(parent=self, label="3" )
  21.         self.bouton3.Bind(wx.EVT_BUTTON, self.OnButtonPush3)
  22.         self.sizer.Add(self.bouton3, proportion=1, flag=wx.EXPAND)
  23.         self.bouton4 = wx.Button(parent=self, label="4" )
  24.         self.bouton4.Bind(wx.EVT_BUTTON, self.OnButtonPush4)
  25.         self.sizer.Add(self.bouton4, proportion=1, flag=wx.EXPAND)
  26.        
  27.         self.bouton5 = wx.Button(parent=self, label="5" )
  28.         self.bouton5.Bind(wx.EVT_BUTTON, self.OnButtonPush5)
  29.         self.sizer.Add(self.bouton5, proportion=1, flag=wx.EXPAND)
  30.         self.bouton6 = wx.Button(parent=self, label="6" )
  31.         self.bouton6.Bind(wx.EVT_BUTTON, self.OnButtonPush6)
  32.         self.sizer.Add(self.bouton6, proportion=1, flag=wx.EXPAND)
  33.         self.bouton7 = wx.Button(parent=self, label="7" )
  34.         self.bouton7.Bind(wx.EVT_BUTTON, self.OnButtonPush7)
  35.         self.sizer.Add(self.bouton7, proportion=1, flag=wx.EXPAND)
  36.         self.bouton8 = wx.Button(parent=self, label="8" )
  37.         self.bouton8.Bind(wx.EVT_BUTTON, self.OnButtonPush8)
  38.         self.sizer.Add(self.bouton8, proportion=1, flag=wx.EXPAND)
  39.         self.bouton9 = wx.Button(parent=self, label="9" )
  40.         self.bouton9.Bind(wx.EVT_BUTTON, self.OnButtonPush9)
  41.         self.sizer.Add(self.bouton9, proportion=1, flag=wx.EXPAND)
  42.         self.bouton10 = wx.Button(parent=self, label="corriger" )
  43.         self.bouton10.Bind(wx.EVT_BUTTON, self.OnButtonPush10)
  44.         self.sizer.Add(self.bouton10, proportion=1, flag=wx.EXPAND)       
  45.        
  46.         self.bouton11 = wx.Button(parent=self, label="appeler" )
  47.         self.bouton11.Bind(wx.EVT_BUTTON, self.OnButtonPush11)
  48.         self.sizer.Add(self.bouton11, proportion=1, flag=wx.EXPAND)
  49.         self.texte = wx.StaticText(parent=self, label="numero:"+str(self.n))
  50.         self.sizer.Add(self.texte, proportion=5, flag=wx.EXPAND)
  51.        
  52.         self.SetSizer(self.sizer)
  53.         self.Show()
  54.                                
  55.     def OnButtonPush0(self, event):
  56.         self.n.append(0)
  57.         self.texte.SetLabel(str(self.n))
  58.                                
  59.     def OnButtonPush1(self, event):
  60.         self.n.append(1)
  61.         self.texte.SetLabel(str(self.n))
  62.     def OnButtonPush2(self, event):
  63.         self.n.append(2)
  64.         self.texte.SetLabel(str(self.n))
  65.            
  66.     def OnButtonPush3(self, event):
  67.         self.n.append(3)
  68.         self.texte.SetLabel(str(self.n))
  69.     def OnButtonPush4(self, event):
  70.         self.n.append(4)
  71.         self.texte.SetLabel(str(self.n))
  72.     def OnButtonPush5(self, event):
  73.         self.n.append(5)
  74.         self.texte.SetLabel(str(self.n))
  75.                                
  76.     def OnButtonPush6(self, event):
  77.         self.n.append(6)
  78.         self.texte.SetLabel(str(self.n))
  79.     def OnButtonPush7(self, event):
  80.         self.n.append(7)
  81.         self.texte.SetLabel(str(self.n))
  82.     def OnButtonPush8(self, event):
  83.         self.n.append(8)
  84.         self.texte.SetLabel(str(self.n))
  85.                                
  86.     def OnButtonPush9(self, event):
  87.         self.n.append(9)
  88.         self.texte.SetLabel(str(self.n))
  89.     def OnButtonPush10(self, event):
  90.         del self.n[-1]
  91.         self.texte.SetLabel(str(self.n))
  92.     def OnButtonPush11(self, event):
  93.         for i in range (len(self.n)):
  94.             if i==9:
  95.                 self.texte.SetLabel("appeler" )
  96.             else:
  97.                 self.texte.SetLabel("numéro incorrect" )
  98.    
  99.                                
  100. app = wx.App()
  101. fen = MaFenetre()
  102. app.MainLoop()

mood
Publicité
Posté le 24-12-2011 à 19:56:25  profilanswer
 

n°2118420
radezleb
Elu peuple de l'année 2013
Posté le 27-12-2011 à 12:22:43  profilanswer
 

La solution d'un ami  
Plus propre, plus fonctionnel
Met un poil trop compliqué pour moi  :o  
 

Code :
  1. # -*- coding: cp1252 -*-
  2. import wx
  3. class MaFenetre(wx.Frame):
  4.     def __init__(self):
  5.         wx.Frame.__init__(self, parent=None, title="Ma Fenetre" )
  6.         self.numero = ''
  7.         self.appel_pushed = False
  8.         self.n = 0
  9.         self.texte_ecran = wx.StaticText(parent=self, label=self.numero)
  10.         self.telephone = wx.BoxSizer(wx.VERTICAL)
  11.         self.clavier = wx.BoxSizer(wx.VERTICAL)
  12.         self.ligne=[]
  13.         for i in range(4):
  14.             self.ligne.append(wx.BoxSizer(wx.HORIZONTAL))
  15.     #Clavier-----------------------------------------------------------------------
  16.            
  17.         self.bouton=[]
  18.         for i in range(9):
  19.             self.bouton.append(wx.Button(parent=self, label=str(i+1)))
  20.        
  21.         self.bouton.append(wx.Button(parent=self, label="Corriger" ))
  22.         self.bouton.append(wx.Button(parent=self, label="0" ))
  23.         self.bouton.append(wx.Button(parent=self, label="Appeller" ))
  24.     #Binding-----------------------------------------------------------------------
  25.        
  26.         self.bouton[0].Bind(wx.EVT_BUTTON, self.OnButton1Push)
  27.         self.bouton[1].Bind(wx.EVT_BUTTON, self.OnButton2Push)
  28.         self.bouton[2].Bind(wx.EVT_BUTTON, self.OnButton3Push)
  29.         self.bouton[3].Bind(wx.EVT_BUTTON, self.OnButton4Push)
  30.         self.bouton[4].Bind(wx.EVT_BUTTON, self.OnButton5Push)
  31.         self.bouton[5].Bind(wx.EVT_BUTTON, self.OnButton6Push)
  32.         self.bouton[6].Bind(wx.EVT_BUTTON, self.OnButton7Push)
  33.         self.bouton[7].Bind(wx.EVT_BUTTON, self.OnButton8Push)
  34.         self.bouton[8].Bind(wx.EVT_BUTTON, self.OnButton9Push)
  35.         self.bouton[9].Bind(wx.EVT_BUTTON, self.OnButtonCPush)
  36.         self.bouton[10].Bind(wx.EVT_BUTTON, self.OnButton0Push)
  37.         self.bouton[11].Bind(wx.EVT_BUTTON, self.OnButtonAPush)
  38.     #Sizers------------------------------------------------------------------------
  39.        
  40.         for i in range(4):
  41.             for j in range(3):
  42.                 self.ligne[i].Add(self.bouton[j+i*3], proportion=1, flag=wx.EXPAND)
  43.             self.clavier.Add(self.ligne[i], proportion=1, flag=wx.EXPAND)
  44.         self.telephone.Add(self.texte_ecran, proportion=1, flag=wx.EXPAND)
  45.         self.telephone.Add(self.clavier, proportion=4, flag=wx.EXPAND)
  46.         self.SetSizer(self.telephone)
  47.         self.Show()
  48.        
  49.     #Fonctions---------------------------------------------------------------------
  50.        
  51.     def PushButton(self, Ntouche):
  52.         if self.appel_pushed == False:
  53.             if self.n > 0 and self.n % 2 == 0:
  54.                 self.numero += (' '+str(Ntouche))
  55.             else:
  56.                 self.numero += str(Ntouche)
  57.             self.n += 1
  58.             self.texte_ecran.SetLabel(self.numero)
  59.    
  60.     def OnButton1Push(self, event):
  61.         self.PushButton(1)
  62.     def OnButton2Push(self, event):
  63.         self.PushButton(2)
  64.     def OnButton3Push(self, event):
  65.         self.PushButton(3)
  66.        
  67.     def OnButton4Push(self, event):
  68.         self.PushButton(4)
  69.        
  70.     def OnButton5Push(self, event):
  71.         self.PushButton(5)
  72.        
  73.     def OnButton6Push(self, event):
  74.         self.PushButton(6)
  75.        
  76.     def OnButton7Push(self, event):
  77.         self.PushButton(7)
  78.        
  79.     def OnButton8Push(self, event):
  80.         self.PushButton(8)
  81.        
  82.     def OnButton9Push(self, event):
  83.         self.PushButton(9)
  84.     def OnButton0Push(self, event):
  85.         self.PushButton(0)
  86.        
  87.     def OnButtonCPush(self, event):
  88.         if self.appel_pushed:
  89.             self.texte_ecran.SetLabel(self.numero)
  90.             self.appel_pushed = False
  91.         else:
  92.             tmp = self.numero
  93.             self.numero = ''
  94.             if self.n%2 == 0:
  95.                 for i in range(len(tmp)-1):
  96.                     self.numero += tmp[i]
  97.             else:
  98.                 for i in range(len(tmp)-2):
  99.                     self.numero += tmp[i]
  100.             self.texte_ecran.SetLabel(str(self.numero))
  101.             self.n -= 1
  102.             if self.n < 0:
  103.                 self.n = 0
  104.        
  105.     def OnButtonAPush(self, event):
  106.         if self.n == 10:
  107.             self.texte_ecran.SetLabel('Appel')
  108.             self.appel_pushed = True
  109.         else:
  110.             self.texte_ecran.SetLabel('Numéro incorrect')
  111.             self.appel_pushed = True
  112.            
  113. app = wx.App()
  114. fen = MaFenetre()
  115. app.MainLoop()


 
 [:radezleb]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  allo, à l'huile

 

Sujets relatifs
Plus de sujets relatifs à : allo, à l'huile


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR