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/

Responder a