Bonjour, je débute en wxpython et je me retrouve confronté a un petit probleme :
Mon application possède plusieurs boutons, lorsque j'appuie sur l'un d'entre eux, une fenêtre enfant apparaît :
Cette fenêtre enfant possede un bouton appelé self.btn10 lié a la fonction self.EvtBouton par l'intermédiaire de la fonction self.Bind :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 self.top3=wx.Frame(self.fen1,-1,"Ajouter stock",size=(350,120),style=wx.DEFAULT_FRAME_STYLE) self.pan4=wx.Panel(self.top3,-1,size=self.top3.GetClientSize()) self.Bind(wx.EVT_CLOSE,lambda x: self.Close_Window(self.top3,self.fen1),self.top3) wx.StaticText(self.pan4,-1,pos=(60,20),label="Quantité :",style=wx.ALIGN_CENTRE) self.spin2=wx.SpinCtrl(self.pan4,-1,pos=(142,20),size=(5,20),style=wx.SP_ARROW_KEYS,initial=0.00) self.Bind(wx.EVT_SPIN_UP,self.ChangeSpinUp,self.spin2) self.Bind(wx.EVT_SPIN_DOWN,self.ChangeSpinDown,self.spin2) self.tct6=wx.TextCtrl(self.pan4,-1,value="0",size=(60,20),pos=(147,20)) self.tct6.SetMaxLength(8) self.btn10=wx.Button(self.pan4,-1,pos=(132,50),label="OK") self.Bind(wx.EVT_BUTTON,self.EvtBouton,self.btn10) self.top3.Show(True) self.SetTopWindow(self.top3) return True
La fenêtre fonctionne tres bien au premier lancement ; celle ci se ferme lorsque l'on a rentré une valeur dans la TextCtrl(associé a un SpinCtrl) et que l'on a validé, la valeur de la self.Listctrl1 et celle de self.liste[self.X][3] est donc modifiée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 def EvtBouton(self,evt): value=float(self.tct6.GetValue()) value2=float(self.liste[self.X][3]) total=value+value2 self.listctrl1.SetStringItem(self.X,3,str(total)) self.liste[self.X][3]=str(total) self.SetTopWindow(self.fen1) self.top3.Destroy()
Après ca, le problème est lorsqu'on clique sur le bouton qui la génère une seconde fois (toujours sous la même instance du programme, il ne s'agit pas de relancer l'ensemble du programme), la fenêtre s'ouvre parfaitement, mais lorsque je souhaite valider pour modifier les valeurs de la self.Listctrl1 et celle de self.liste[self.X][3], il semble que l'événement ne soit pas généré OU que l'événement wx.EVT_BUTTON ne génére pas l'appel de la fonction self.EvtBouton.
J'attends vos réponses !
Merci
Partager