仅接受PyQlin 4字符

2024-05-15 03:16:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个方法来验证lineEdit中的字符:

 def is_validate(self):
    regex = QtCore.QRegExp("[a-z-A-Z_]+")
    txtDepartment_validator = QtGui.QRegExpValidator(regex, self.txtDepartment)
    self.txtDepartment.setValidator(txtDepartment_validator)
    return True

然后用下面的另一种方法

^{pr2}$

但当我输入数字或特殊字符时,它接受并保存到数据库中。怎么了?在


Tags: 方法selfisdef字符validatevalidatorregex
2条回答

如果您希望python中的文本行只接受数字(int),可以这样更改:

    regex = QRegExp("[0-9_]+")
    validator = QRegExpValidator(regex)
    self.tb3.setValidator(validator)

验证器用于替换is_validate之类的方法。你不需要这种方法。
问题是你在用户输入后设置验证器,所以已经太迟了。在

创建行edit时,应该设置一次验证器:

self.line=QtGui.QLineEdit()
regex=QtCore.QRegExp("[a-z-A-Z_]+")
validator = QtGui.QRegExpValidator(regex)
self.line.setValidator(validator)

然后,用户就不可能在行编辑中键入任何特殊字符。每次用户输入时,验证器都会检查是否允许使用该字符。它是不允许的,它不会被添加到行编辑中。不再需要is_validate。在

相关问题 更多 >

    热门问题