textbox, sacar Retorno de carro o enter...

Catalin Lungu lcatalin en siadv.com
Lun Ene 24 08:55:16 CET 2005


Esto te pasa por no usar los eventos adecuados.
Ya te lo he dicho que para tratar el Enter hay que usar EVT_TEXT_ENTER.
Mira en la documentación de wx y veras que el EVT_CHAR no está definido para 
los TextCtrl sino que lo hereda del wxWindow.
Pon un debug en evento EVT_CHAR y mira cuanto veces salta al pulsar una 
tecla, además de su evento.
Otra cosa que no entiendo es por que pones tantos return si no devuelves 
nada.
Te aconsejo que uses EVT_TEXT_ENTER para el Enter y EVT_TEXT para las demás 
teclas.

Un saludo,
Catalin
----- Original Message ----- 
From: "Ariel Nardelli" <pan_python en yahoo.com.ar>
To: <python-es en aditel.org>
Sent: Monday, January 24, 2005 5:56 AM
Subject: [Python-es] textbox, sacar Retorno de carro o enter...


> Hola!
>
> Tengo un  wxTextCtrl donde ingreso basicamente numeros, pero esoy con el 
> problema que al pulsar el Intro (o sea el enter del telcado numerico) me 
> pasa con caracter 13 pero me agrega en la variable el caracter del enter 
> que es invisible y no puedo sacarlo y no se como hacer para evitar que se 
> me meta en la variable...
>
> Uso Python + wxwin en Debian.
>
> Este es mi codigo, aca lo defino...
>
>        self.tc_ncon = wxTextCtrl(self, 1, "", 
> style=wxTE_PROCESS_ENTER|wxTE_PROCESS_TAB)
>        self.tc_ncon.SetToolTipString("Introduzca el Nro de Contrato a 
> procesar")
>
>        # TB_ncon
>        EVT_TEXT(self, 1,self.funciontex)
>        EVT_CHAR(self.tc_ncon, self.funcionkey)
>
> y las funciones..
>
>    # Funcion de prueba de teclado. Esta es para probar como imprime 
> nomas...
>    def funciontex(self,event):
>        key = event.GetString()
>        print key,len(key)
>        return
>       def funcionkey(self,event):
>        deja = '0123456789'
>        key = event.GetKeyCode()
>        print key
>        if key == 9:  # Tecla TAB Pasa foco al boton.
>            self.bbuscar.SetFocus()
>            event.Skip()
>            return
>        if key == 13: # Enter directamente busca el dato
>            event.Skip()
>            self.rutbuscar()
>            return
>        if key < WXK_SPACE or key == WXK_DELETE or key > 255:
>            event.Skip()
>            return
>        if chr(key) in deja:
>            event.Skip()
>            return
>        return
>
>
> Asi filtro que solo se me ingrese numeros sin signo - ni . ni , pero no 
> logro sacarme de encima el enter, pero aunque pusle el enter se me ejecuta 
> lo que esta bajo el key == 13 eso me funciona pero ademas "me agrega" el 
> caracter dentro de la variable, lo se porque al pusar enter el len de la 
> variable me suma uno mas, evidentemente me esta metiendo el caracter 
> dentro de la variable.
>
> Si alguien puede darme una manito se lo voy a agradecer!!!
>
> Ariel
>
> -- 
> Saludos
> Panflin
>
> NO al limite de adsl de TELECOM
> Firma YA el petitorio NACIONAL para que TELECOM no nos estafe con el 
> limite del ADSL, la direccion es:
> http://peticionbandaancha.com/
>
> www.reconquista.com.ar
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es 




Más información sobre la lista de distribución Python-es