22/09/2010, 12:43
|
| | Fecha de Ingreso: abril-2008
Mensajes: 68
Antigüedad: 16 años, 7 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
|