IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxPython Discussion :

Comment récupérer la valeur courante de SpinCtrl


Sujet :

wxPython

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Comment récupérer la valeur courante de SpinCtrl
    Bonjour,

    Pour m'initier à wxpython, j'ai fait une fenêtre dans laquelle il ya un TxtCtrl, un SpinCtrl et un bouton. Quand je clique sur le bouton j'enregistre dans un fichier texte les valeurs des deux champs.

    Je voudrais savoir comment récupérer la valeur d'un champ SpinCtrl car actuellement avec GetValue je récupère à chaque fois la valeur définie par SetValue et non pas la valeur courante entrée par l'utilisateur.

    Merci

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    import wx
    class ButtonFrame(wx.Frame):
     
        def __init__(self):
            wx.Frame.__init__(self, None, -1, 'Button Example',
            size=(250, 200))
            panel = wx.Panel(self, -1)
     
            """creation bouton"""
            self.button1 = wx.Button(panel, -1, "Enregistrer", pos=(100, 100), style=2)
            self.Bind(wx.EVT_BUTTON, self.OnClick1, self.button1)        
     
            """ Saisie1 """      
            self.txtEntry1 = wx.TextCtrl(panel, -1, "", pos=(50, 50),size=(100, 20))
     
            """ Spinner """
            sc = wx.SpinCtrl(panel, -1, "", (150, 50), (80, -1))
            sc.SetRange(1,255)
            sc.SetValue(10)                
            self.ValSpinner = sc.GetValue()
     
        """fonction bouton 1 """   
        def OnClick1(self, event):
     
            Saisie1 = self.txtEntry1.GetLineText(0)
     
            file = open('fichier2.txt','a') 
            file.write(Saisie1) 
            file.write('\n') 
            file.write(str(self.ValSpinner))
            file.write('\n')                 
            file.close()
            self.txtEntry1.SetValue("")
            self.txtEntry1.SetFocus()
     
    if __name__ == '__main__':
        app = wx.PySimpleApp()
        frame = ButtonFrame()
        frame.Show()
        app.MainLoop()

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Tu imprimes la valeur à la création du bouton (donc 10).
    Il faut chercher cette valeur au moment de l'enregistrement.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    import wx
    class ButtonFrame(wx.Frame):
     
        def __init__(self):
            wx.Frame.__init__(self, None, -1, 'Button Example',
            size=(250, 200))
            panel = wx.Panel(self, -1)
     
            """creation bouton"""
            self.button1 = wx.Button(panel, -1, "Enregistrer", pos=(100, 100), style=2)
            self.Bind(wx.EVT_BUTTON, self.OnClick1, self.button1)        
     
            """ Saisie1 """      
            self.txtEntry1 = wx.TextCtrl(panel, -1, "", pos=(50, 50),size=(100, 20))
     
            """ Spinner """
            self.sc = wx.SpinCtrl(panel, -1, "", (150, 50), (80, -1))
            self.sc.SetRange(1,255)
            self.sc.SetValue(10)                
     
     
        """fonction bouton 1 """   
        def OnClick1(self, event):
     
            Saisie1 = self.txtEntry1.GetLineText(0)
     
            file = open('fichier2.txt','a') 
            file.write(Saisie1) 
            file.write('\n') 
            file.write(str(self.sc.GetValue()))
            file.write('\n')                 
            file.close()
            self.txtEntry1.SetValue("")
            self.txtEntry1.SetFocus()
     
    if __name__ == '__main__':
        app = wx.PySimpleApp()
        frame = ButtonFrame()
        frame.Show()
        app.MainLoop()

  3. #3
    Membre averti
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 349
    Points
    349
    Par défaut
    vu ton code ça me semble normal, tu définis self.ValSpinner dans le "init" donc elle n'est plus modifiée ensuite...

    Dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            sc = wx.SpinCtrl(panel, -1, "", (150, 50), (80, -1))
            sc.SetRange(1,255)
            sc.SetValue(10)
    remplace les sc par self.sc et efface self.ValSpinner et où tu voulais avoir la valeur du spinner tu fais self.sc.GetValue()

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci a tous, ça fonctionne nickel.
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/12/2005, 12h24
  2. Réponses: 1
    Dernier message: 21/11/2005, 12h07
  3. Réponses: 7
    Dernier message: 15/09/2005, 06h37
  4. Comment récupérer la valeur d'un dbGrid dans des fenêtres MDI ?
    Par sylvie cl dans le forum Composants VCL
    Réponses: 5
    Dernier message: 19/07/2005, 13h42
  5. Réponses: 3
    Dernier message: 22/01/2005, 22h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo