Me desaparece el cursor...

Chema Cortes py en ls-l.org
Vie Feb 18 09:30:08 CET 2005


Ariel Nardelli escribió:
> Sigo armando un programa done uso texbox para introducir campos fecha y 
> se me esta presentando un inconveniente.
> Quiero validar que al fecha ingresada sea correcta y se me ocurrio que 
> para hacer la validacion tengo que hacerla cuando el texbox pierde el 
> foco, cuando se pierde el foco es cuando tengo que verificar que la 
> fecha sea correcta y si lo es ahi continuar el programa.
> Pero, resulta que al poner el evento de Kill foco en el texbox pierdo el 
> cursor no me queda la barrita titilante pero puedo editar lo escrito 
> dentro del texbox, corregirlo y hacer lo que quiera... pero todo el 
> tiempo no tengo la barrita del cursor que me marca donde esta...
> 
> Uso wxwin 2.4

Normalmente, bastaría con dar la versión corta de la librería que usas, 
pero con wx resulta necesario dar los cuatro dígitos. Supongo que estás 
usando la versión 2.4.2.4,...y por cierto, no se debe usar el nombre 
antiguo "wxwindows". Ahora es "wxWidgets" o, para python, "wxPython" (o 
abrevia y pon "wx" ;-).

Para resolver tu problema, haz un event.Skip() para que continúe el 
procesamiento de eventos:

def ev_kf_tc_falta(self,event):  # Kill Foco..
   ....
   if isOK:
     event.Skip()  #La entrada es correcta-->siguente "handler"
   else:
     wxBell()  #Falla la validación


Te aconsejo que tengas cuidado con los cierres de ventana (EVT_CLOSE). 
En algunos sistemas operativos (eg: windows) se lanza el evento 
kill_focus después de haberse eliminado la ventana y todo su contenido. 
Mírate este artículo:

http://wiki.wxpython.org/index.cgi/Surviving_20with_20wxEVT_5fKILL_5fFOCUS_20under_20Microsoft_20Windows




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