El 27 de abril de 2010 09:31, Narcis Garcia - GiLUG <informat...@actiu.net>escribió:
> 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/ > En principio no veo nada extraño en tu codigo. ¿Tiene solo un radio button o tienes varios?. Creo que la acción se ejecuta al cambiar el valor del radio button y si solo tienes uno no ocurrirá nunca ese cambio. Echale un vistazo a http://zetcode.com/wxpython/widgets, es de los manuales mas simples, pero queda bastante claro. -- 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/