Ahora lo he puesto así:
NuevoControl = wx.RadioBox(self, -1, AnimalActual, ...)
self.LosControles.append(NuevoControl)
NuevoControl.Bind(wx.EVT_RADIOBUTTON, self.UnaReaccion)
No me da ningun error, pero tampoco reacciona.
Lo que espero es que al pulsar y/o cambiar valores de las casillas me
ejecute la función "UnaReaccion".
En/na Jose Antonio Jiménez ha escrit:
El 27 de abril de 2010 00:08, <rafaelcan...@hotmail.com
<mailto:rafaelcan...@hotmail.com>> escribió:
Buenas.
yo estoy empezando ahora con wxpython, pero veo algo mal, o eso
entiendo:
NuevoControl = self.LosControles.append(wx.RadioBox(self, -1,
AnimalActual, (PosX, PosY), wx.DefaultSize, OpcionesPosibles, 1))
self.Bind(wx.EVT_RADIOBUTTON, self.UnaReaccion, NuevoControl)
Por lo que yo veo ahí, estás conectando el evento a la ventana y no
al control. self contiene la ventana, no el control. Lo que me
despista ahí es el tercer parámetro que pasas, la verdad.
La forma que yo conozco (desconozco si hay otra) es con esta forma:
self.miControl.bind(ex.evento, self.miFuncion)
Intenta transformarlo en esta forma, a ver si te funciona.
saludos
Rafa
--------------------------------------------------
From: "Narcis Garcia - GiLUG" <informat...@actiu.net
<mailto:informat...@actiu.net>>
Sent: Monday, April 26, 2010 9:44 PM
To: <python-es@python.org <mailto:python-es@python.org>>
Subject: [Python-es] Manejo de eventos en wxPython
Hola, soy nuevo en la lista y ante todo quiero agradecer a
quienes la
mantienen en funcionamiento y a quienes tienen la paciencia de
ayudar a
los demás.
Estoy empezando en Python desarrollando una pequeña aplicación con
interfaz gráfica (sin asistentes/IDE/RAD), y estoy intentando
manejar
eventos para los controles en una ventana, pero la pequeña
muestra que
adjunto no reacciona a nada.
¿Puede alguien explicar qué es lo que estoy haciendo mal?
Quiero lanzar un cuadro de diálogo con el título "Funciona"
cuando el
usuario cambia un valor, pero sólo el formulario es mostrado sin
ninguna
reacción ni error.
Gracias.
#!/usr/bin/python
import wx
AnimalesDisponibles = ["gato", "perro", "pajaro"]
class InterfazPrincipal(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title)
OpcionesPosibles = ["Sentar", "Caminar", "Correr"]
self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
self.LosControles = []
NrControlActual = 0
for AnimalActual in AnimalesDisponibles:
PosX = 10+90*NrControlActual
PosY = 10
NuevoControl = self.LosControles.append(wx.RadioBox(self, -1,
AnimalActual, (PosX, PosY), wx.DefaultSize, OpcionesPosibles, 1))
self.Bind(wx.EVT_RADIOBUTTON, self.UnaReaccion, NuevoControl)
NrControlActual = NrControlActual + 1
self.Show(True)
def UnaReaccion(self, event):
wx.MessageBox(event, "Funciona")
event.Skip()
Aplicacion = wx.App(False)
MiVentana = InterfazPrincipal(None, "Una prueba de eventos")
Aplicacion.MainLoop()
_______________________________________________
Python-es mailing list
Python-es@python.org <mailto:Python-es@python.org>
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es@python.org <mailto:Python-es@python.org>
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
NuevoControl = self.LosControles.append(wx.RadioBox( ...
NuevoControl tiene el resultado de la función append, que es None, por
eso te da ese mensaje de error.
Prueba a:
NuevoControl = wx.RadioBox(...
self.LosControloes.append(NuevoControl)
Y luego, para el evento, la forma en que lo haces está bien. También es
correcta la forma que te dice Narcis (NuevoControl.Bind(...) )
--
Un saludo. Jose
------------------------------------------------------------------------
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/