Récupérer la valeur choisie dans une liste déroulante [Résolu]

Signaler
Messages postés
24
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
10 mai 2009
-
Messages postés
24
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
10 mai 2009
-
Bonjours à tous,
Ma question peu paraitre bête mais je n'ai pas trouvé de réponse claire.
Voila: j'ai programmé une interface graphique avec wx.Python. Elle comporte plusieurs listes déroulantes (widget wx.Choice).
J'aimerai simplement récupérer la valeur que va choisir l'utilisateur dans la liste.

Voici un morceau de mon code:

[cpp]choix = [ '% CPU1' , '% CPU2', '% RAM' , "% GPU" , '%HDD' , "T cpu (°C)" , "T gpu (°C)" , "V ventilateur CPU (%)" , "V ventilateur GPU (%)" ]
        port = [ 'LPT 1' , 'USB', 'RS232' ]
        power = [ 'ON' , 'OFF' ]
       
        self.choix1 = wx.Choice(self,-1,choices=choix)
        sizer.Add (self.choix1, (2,2), (1,1))
                             
        self.choix2 = wx.Choice(self,-1,choices=choix)
        sizer.Add (self.choix2, (8,2), (1,1))
               
        self.choix3 = wx.Choice(self,-1,choices=choix)
        sizer.Add (self.choix3, (2,6), (1,1))
               
        self.choix4 = wx.Choice(self,-1,choices=choix)
        sizer.Add (self.choix4, (8,6), (1,1))

        self.choix5 = wx.Choice(self,-1,choices=port)
        sizer.Add (self.choix5, (13,2), (1,1))

        self.choix6 = wx.Choice(self,-1,choices=power)
        sizer.Add (self.choix6, (13,6), (1,1))/cpp
A voir également:

3 réponses

Messages postés
1
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
16 septembre 2008

Bonjour.

    def OnChoix1(self,evt):
        a=(evt.GetEventObject().GetLabel())
    def OnSave(self,evt):
        print a

a est une variable local de OnChoix1 la dedans, non ?

essaies de faire :

...     def OnChoix1(self,evt):
...             self.a='test'
...     def OnSave(self,evt):
...             print self.a
...
(mon test)
>>> boo = test(); boo.OnChoix1(); boo.OnSave()
test
Messages postés
24
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
10 mai 2009

J'ai trouvé le moyen de récupérer les valeurs sélectionnées en utilisant ces commandes:
   
    self.Bind(wx.EVT_CHOICE,self.OnChoix1, self.choix1)
    def OnChoix1(self,evt):
        obFichier = open('config','a')
        obFichier.write (evt.GetEventObject().GetLabel())
        obFichier.write ("\n")
        obFichier.close()

Les valeurs sont ainsi inscrites dans un fichier texte. Le problème est qu'en cas de modifications répétées de la valeur, elles se retrouvent toutes dans le fichier texte...
La solution serait donc d'affecter la valeur retournée à une variable et ensuite d'incrire la valeur de la variable.
J'ai donv penser à ce code:

    def OnChoix1(self,evt):
        a=(evt.GetEventObject().GetLabel())
    def OnSave(self,evt):
        print a

Le shell me retourne alors cette erreur:
Traceback (most recent call last):
  File "F:\prog monitoring\Configurateur.py", line 261, in OnSave
    print a                        
NameError: global name 'a' is not defined.

Comment puis-je résoudre cette erreur?

   
Messages postés
24
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
10 mai 2009

A, c'est possible, désolé de mon étourderie et de mon retard pour répondre