Widgets généré automatiquement - récupération de valeur
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:
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() |