Ver Mensaje Individual
  #7 (permalink)  
Antiguo 22/09/2010, 12:43
Nano-rosario
 
Fecha de Ingreso: abril-2008
Mensajes: 68
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: wx.lib.masked

Bueno finalmente hice esta clase
Código:
class Numeric_float(wx.TextCtrl):
    def __init__(self,*args, **kwds):
        wx.TextCtrl.__init__(self, *args, **kwds)
        self.Bind(wx.EVT_CHAR, self.OnChar)
        self.Bind(wx.EVT_KILL_FOCUS,self.Round)
        self.digits = ['0','1','2','3','4','5','6','7','8','9','.']
        
    def OnChar(self,event):
        key = event.GetKeyCode()
        if key < wx.WXK_SPACE or key == wx.WXK_DELETE or key > 255:
            event.Skip()
            return
        if chr(key) == '.':
            text = self.GetValue()
            if chr(key) in text or len(text) == 0:
                return
        if chr(key) in self.digits:
            event.Skip()
            return
    def Round(self,evt):
        try:
            num = float(self.GetValue())
            text = str(round(num,2))
            self.SetValue(text)
        except ValueError:
            pass