[Python-es] Manejo de eventos en wxPython
Narcis Garcia - GiLUG
informatica en actiu.net
Mar Abr 27 09:31:32 CEST 2010
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, <rafaelcantos en hotmail.com
> <mailto:rafaelcantos en 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" <informatica en actiu.net
> <mailto:informatica en actiu.net>>
> Sent: Monday, April 26, 2010 9:44 PM
> To: <python-es en python.org <mailto:python-es en 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 en python.org <mailto:Python-es en python.org>
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org <mailto:Python-es en 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 en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
Más información sobre la lista de distribución Python-es