Bonjour,

J'ai un petit souçis avec la récupération des valeurs, labels, etc... lorsqu'ils ont été généré automatiquement. Voici un exemple de code (qui fonctionne). Ce que j'aimerai c'est que lorsque l'on clique sur bouton n°X, seul le txtctrl n°X soit affiché (print). Jusqu'à présent c'est soit je parcours tous les txtcrtl (voir fonction OnAction) soit rien...

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
42
43
44
45
46
 
# -*- coding: utf-8 -*-
 
import wx
 
 
class MaClasse(wx.Frame):
 
    def __init__(self):
        wx.Frame.__init__(self, None, size=(-1,-1),title='Fenetre principale')
 
        # Création d'un sizer
        self.framesizer = wx.FlexGridSizer(9,2)
 
        # Création d'un conteneur
        self.conteneur = wx.Panel(self)        
        # On lie le sizer à son parent
        self.conteneur.SetSizer(self.framesizer)
 
        # Liste contenant les widgets
        self.textctrl= []
        self.button= []
 
        for k in range(0,10):
            # Création des widgets
            button = wx.Button(self.conteneur, 1, 'Bouton'+str(k), (-1,-1))
            textctrl = wx.TextCtrl(self.conteneur, -1, '0', style=wx.TE_CENTRE )
            # Association du bouton à une action
            button.Bind(wx.EVT_BUTTON, self.OnAction)
            # Ajout des widgets au panel
            self.framesizer.Add(button, 1, wx.EXPAND)
            self.framesizer.Add(textctrl, 1, wx.EXPAND)
            # Ajout des widgets à leur liste, pour futur rappel
            self.button.append(button)
            self.textctrl.append(textctrl)
 
    def OnAction(self, event):
        for item in self.textctrl:
            print item.GetValue()
 
 
 
if __name__ == "__main__":
    app = wx.App()
    MaClasse().Show()
    app.MainLoop()