def __init__(
            self,
            parent,
            id=-1,
            value='',
            pos=wx.DefaultPosition,
            size=wx.DefaultSize,
            style=wx.TE_PROCESS_TAB,
            validator=wx.DefaultValidator,
            name='IpAddrCtrl',
            setupEventHandling=True,  ## setup event handling by default
            **kwargs):

        if not kwargs.has_key('mask'):
            kwargs['mask'] = mask = "###.###.###.###"
        if not kwargs.has_key('formatcodes'):
            kwargs['formatcodes'] = 'F_Sr<>'
        if not kwargs.has_key('validRegex'):
            kwargs[
                'validRegex'] = "(  \d| \d\d|(1\d\d|2[0-4]\d|25[0-5]))(\.(  \d| \d\d|(1\d\d|2[0-4]\d|25[0-5]))){3}"

        BaseMaskedTextCtrl.__init__(self,
                                    parent,
                                    id=id,
                                    value=value,
                                    pos=pos,
                                    size=size,
                                    style=style,
                                    validator=validator,
                                    name=name,
                                    setupEventHandling=setupEventHandling,
                                    **kwargs)

        # set up individual field parameters as well:
        field_params = {}
        field_params[
            'validRegex'] = "(   |  \d| \d |\d  | \d\d|\d\d |\d \d|(1\d\d|2[0-4]\d|25[0-5]))"

        # require "valid" string; this prevents entry of any value > 255, but allows
        # intermediate constructions; overall control validation requires well-formatted value.
        field_params['formatcodes'] = 'V'

        if field_params:
            for i in self._field_indices:
                self.SetFieldParameters(i, **field_params)

        # This makes '.' act like tab:
        self._AddNavKey('.', handler=self.OnDot)
        self._AddNavKey('>', handler=self.OnDot)  # for "shift-."
예제 #2
0
    def __init__(self,
                 parent,
                 id=-1,
                 value='',
                 pos=wx.DefaultPosition,
                 size=wx.DefaultSize,
                 style=wx.TE_PROCESS_TAB,
                 validator=wx.DefaultValidator,
                 name='IpAddrCtrl',
                 setupEventHandling=True,
                 **kwargs):
        """
        Default class constructor.

        :param wx.Window `parent`: the window parent. Must not be ``None``;
        :param integer `id`: window identifier. A value of -1 indicates a default value;
        :param string `value`: value to be shown;
        :param `pos`: the control position. A value of (-1, -1) indicates a default position,
         chosen by either the windowing system or wxPython, depending on platform;
        :type `pos`: tuple or :class:`wx.Point`
        :param `size`: the control size. A value of (-1, -1) indicates a default size,
         chosen by either the windowing system or wxPython, depending on platform;
        :param integer `style`: the window style;
        :param wx.Validator `validator`: this is mainly provided for data-transfer, as control does
          its own validation;
        :param string `name`: the window name;
        :param boolean `setupEventHandling`: setup event handling by default.

        """

        if 'mask' not in kwargs:
            kwargs['mask'] = mask = "###.###.###.###"
        if 'formatcodes' not in kwargs:
            kwargs['formatcodes'] = 'F_Sr<>'
        if 'validRegex' not in kwargs:
            kwargs[
                'validRegex'] = r"(  \d| \d\d|(1\d\d|2[0-4]\d|25[0-5]))(\.(  \d| \d\d|(1\d\d|2[0-4]\d|25[0-5]))){3}"

        BaseMaskedTextCtrl.__init__(self,
                                    parent,
                                    id=id,
                                    value=value,
                                    pos=pos,
                                    size=size,
                                    style=style,
                                    validator=validator,
                                    name=name,
                                    setupEventHandling=setupEventHandling,
                                    **kwargs)

        # set up individual field parameters as well:
        field_params = {}
        field_params[
            'validRegex'] = r"(   |  \d| \d |\d  | \d\d|\d\d |\d \d|(1\d\d|2[0-4]\d|25[0-5]))"

        # require "valid" string; this prevents entry of any value > 255, but allows
        # intermediate constructions; overall control validation requires well-formatted value.
        field_params['formatcodes'] = 'V'

        if field_params:
            for i in self._field_indices:
                self.SetFieldParameters(i, **field_params)

        # This makes '.' act like tab:
        self._AddNavKey('.', handler=self.OnDot)
        self._AddNavKey('>', handler=self.OnDot)  # for "shift-."