Python源码示例:PyQt5.QtGui.QValidator()
示例1
def validate(self, string, index):
# one approach is to break the string into segments
# and test each segment for proper content
state = qtg.QValidator.Acceptable
seg1 = string[0:2]
dash1 = string[2:3]
seg2 = string[3:6]
dash2 = string[6:7]
seg3 = string[7:11]
seg4 = string[11:12]
if not all([char in self.valid_letters for char in seg1 + seg4]):
state = qtg.QValidator.Invalid
elif not all([char.isdigit() for char in seg2 + seg3]):
state = qtg.QValidator.Invalid
elif not all([char == '-' for char in dash1 + dash2]):
state = qtg.QValidator.Invalid
elif len(string) > 12:
state = qtg.QValidator.Invalid
elif not all([seg1, dash1, seg2, dash2, seg3, seg4]):
state = qtg.QValidator.Intermediate
return (state, string, index)
示例2
def validate(self, original, offset): # pylint:disable=W0613
"""Fixes original text and resets cursor to end of line."""
filtered = self.fixup(original)
return QtGui.QValidator.Acceptable, filtered, len(filtered)
示例3
def validate(self, string, index):
if string in self.choices:
state = qtg.QValidator.Acceptable
elif any([v.startswith(string) for v in self.choices]):
state = qtg.QValidator.Intermediate
else:
state = qtg.QValidator.Invalid
return (state, string, index)
示例4
def validate(self, string, index):
octets = string.split('.')
if len(octets) > 4:
state = qtg.QValidator.Invalid
elif not all([x.isdigit() for x in octets if x != '']):
state = qtg.QValidator.Invalid
elif not all([0 <= int(x) <= 255 for x in octets if x != '']):
state = qtg.QValidator.Invalid
elif len(octets) < 4:
state = qtg.QValidator.Intermediate
elif any([x == '' for x in octets]):
state = qtg.QValidator.Intermediate
else:
state = qtg.QValidator.Acceptable
return (state, string, index)
示例5
def select_type_validator(tp: click.types.ParamType)-> QtGui.QValidator:
""" select the right validator for `tp`"""
if isinstance(tp, click.types.IntParamType):
return QtGui.QIntValidator()
elif isinstance(tp, click.types.FloatParamType):
return QtGui.QDoubleValidator()
return None