que me recomiendan

Chema Cortés ch3m4 en ch3m4.org
Lun Ago 18 10:18:21 CEST 2003


Miguel B escribió:
> Un programa que tengo en VB6 + MS Access lo quiero pasar a wxpython + postgresql. En estos momentos tengo un modulo donde capturo varios campos para guardarlos en la BD, donde al introducir los datos voy validando, las dudas son

Aunque no tengo demasiada experiencia con wxPython,...

> 1.- como se les hace esto o me recomiendan otro forma? 
> 
>     def OntxtCapturoChar(self, event):
>         key=event.GetKeyCode()
>         if key in range(256):

Con este 'if' te estás eliminando el resto de códigos "no-ascii", 
llamados códigos virtuales. Entre éstos están los movimientos del 
cursor, y es por eso que no te funcionan.

>             #if para pasar al siguiente campo
>             if key ==13 :                
>                 self.txtFecha.Enable(true)
>                 self.txtFecha.SetFocus()
>                 self.txtCapturo.Enable(false)
>             #if para validar solo numeros
>             elif (key >= 48 and key <= 57):
>                 #agrego el caracter al campo
>                 self.txtCapturo.AppendText(chr(key))
>             #if para permitir el backspace
>             elif key==8:
>                 event.Skip()

Te propongo éste cambio (no lo he probado :-S )

def OntxtCapturoChar(self, event):
         key=event.GetKeyCode()
         #if para pasar al siguiente campo
         if key==wx.WXK_RETURN :
             self.txtFecha.Enable(true)
             self.txtFecha.SetFocus()
             self.txtCapturo.Enable(false)
         #if para validar solo numeros
         elif ord('0')<=key<=ord('9')):
             #agrego el caracter al campo
             self.txtCapturo.AppendText(chr(key))
         #if para permitir el backspace
         elif key==wx.WXK_BACK:
             event.Skip()
         #if para permitir códigos virtuales
         elif key > 256:
             event.Skip()

Los dos últimos 'elif' se pueden combinar en uno sólo.

> 
> 2.- pero si quiero mover el cursor con las flechas no se mueve, como le puedo hacer para hacerlo?
> 
> 3.- En VB podia hacer arrglos de controles, se puede tambien en python?

Las colecciones del VB las puedes implementar con listas. El uso del 
'for' del python sería idéntico al 'for each' del VB.




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