He probado así:
NuevoControl.Bind(wx.EVT_RADIOBUTTON, self.UnaReaccion)

Pero me devuelve:
AttributeError: 'NoneType' object has no attribute 'Bind'


En/na rafaelcan...@hotmail.com ha escrit:
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>
Sent: Monday, April 26, 2010 9:44 PM
To: <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
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/
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a