llamar un evento desde otro con wx
Oswaldo Hernández
listas en soft-com.es
Mie Jun 18 12:55:02 CEST 2008
damufo escribió:
>
>
> Oswaldo Hernández escribiu:
>> damufo escribió:
>>> Hola:
>>> La cuestión es la siguiente, tengo un evento
>>>
>>> def on_btn_abrir_button(self, event):
>>> pass
>>> event.Skip()
>>>
>>> def on_lst_eventos_leftdclick(self, event):
>>> self.on_btn_abrir_button(wx.EVT_BUTTON)
>>> event.Skip()
>>>
>>> el error que me lanza es
>>> AttributeError: 'PyEventBinder' object has no attribute 'Skip'
>>> Alguien sabe que estoy haciendo mal?
>>> Pienso que el wx.EVT_BUTTON no es correcto pero no se que es lo que
>>> tengo que poner.
>>
>> Si en 'on_btn_abrir_button' no utilizas niguna propiedad o metodo del
>> evento puedes enviarle un None o un False:
>>
>> def on_btn_abrir_button(self, event):
>> pass
>> if event:
>> event.Skip()
>>
>> def on_lst_eventos_leftdclick(self, event):
>> self.on_btn_abrir_button(None)
>> event.Skip()
>>
>> Personalmente creo que para los casos en que dos eventos realizan la
>> misma acción es preferible:
>> Crear una tercera funcion que es llamada por las dos funciones de
>> evento.
>> ó crear una unica funcion de eventos y hacer Bind de los dos
>> eventos a la misma funcion
>>
>
> Gracias!, el caso es que eso ya lo probara, los errores que dan son,
> None y False, respectivamente.
>
> AttributeError: 'NoneType' object has no attribute 'Skip'
>
> AttributeError: 'bool' object has no attribute 'Skip'
>
Si te fijas en lo que he enviado, antes de hacer el skip se comprueba event para evitar el error.
> He probado otra cosa que no da error y es conectar (no se si se dice
> así) directamente el evento de la list con el botón de abrir
>
> self.lst_eventos.Bind(wx.EVT_LEFT_DCLICK,
> self.on_btn_abrir_button)
>
>
> Cuento un poco de que va la cosa. Tengo un a lista en la se selecciona
> una fila y despues, al pulsar sobre el botón "abrir" este habre otra
> ventana en la que muestra la información de la fila seleccionada. Lo que
> quería es que exista la posibilidad de que con un doble clic sobre la
> fila se abra directamente la ventana.
>
> No se si es esta la forma correca de hacerlo?
>
Esa es la segunda posibilidad que te daba, y funciona correctamente siempre y cuando no utilices en
la funcion las propiedades de event, ya que segun quien lo genere será un evento tipo EVT_BUTTON o
EVT_LEFT_DCLICK y tienen metodos distitos.
Saludos,
--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es