[wxPython-users] PyValidator and floats, howto?

Werner F. Bruhin werner.bruhin at free.fr
Sat Jan 20 01:45:05 PST 2007


Hi Basil,

I don't want to insist, but why don't you used just the 
wx.lib.masked.numctrl or wx.lib.masked.textctrl with an appropriate mask?

Werner

Basil Shubin wrote:
> Hi friends!
>
> I have trying understand this *damn* PyValidator and don't know how I 
> can check text while input, so only float number will be accepted... 
> Why there Validator method that do not do anything?
>
> Inside OnChar method I can only check if inputed *char* is valid, but 
> don't know how to validate entire string.
>
> Suppose float value should correspond some pattern, i.e. only two 
> digints after dot. How to implement float validator based on 
> PyValidator class?
>
> Thanks!
> ------------------------------------------------------------------------
>
> # -*- coding: utf-8 -*-
>
> import wx
> import re
>
>
> class floatValidator(wx.PyValidator):
>         
>     def __init__(self, pyVar=None):
>         wx.PyValidator.__init__(self)
>         self.numList = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '.']
>         self.Bind(wx.EVT_CHAR, self.OnChar)
>
>     def Clone(self):
>         return floatValidator()
>
>     def Validate(self, win):
>         pass
>
>     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) in self.numList:
>             event.Skip()
>             return
>
>         if not wx.Validator_IsSilent():
>             wx.Bell()
>
>         # Returning without calling even.Skip eats the event before it
>         # gets to the text control
>         return
>   
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wxPython-users-unsubscribe at lists.wxwidgets.org
> For additional commands, e-mail: wxPython-users-help at lists.wxwidgets.org






More information about the wxpython-users mailing list