在wxPython中验证数据

2024-10-04 11:29:16 发布

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

我正在尝试为表单上的输入创建验证器。我已经知道在wxPython中,继承wx.验证器因为缺少对标准wxTextValidator和其他的支持。在

我的问题是:

  • 检查字符串是否符合简单规则的有效性(请不要使用regexp)

    acceptableChars = ['a', 'b', ...]

    {cd2}

    这样有效率吗?以及如何清晰地指定所有字母数字或数字?或者有没有现成的类或函数?

  • 重写Validate方法在输入数据时是否只保留约束条件-我的意思是它会阻止用户在字母数字TextCtrl中输入数字,还是只在关闭模式诊断时检查?


Tags: 函数字符串表单标准规则字母wxpython数字
2条回答

Validate()只有在对话框将要关闭时才被调用,但也可以在控件失去焦点时自己调用它。最后,如果您的控件根本不接受某些字符,您还可以拦截wxEVT_CHAR事件,以防止它们被输入。我相信wxPython演示展示了如何做到这一点。在

"12345".isdigit() # True
"123.45".isdigit() # False
"abcde".isalpha() # True
"abcde1".isalpha() # False
"abcde12345".isalnum() # True
"!!??".isalnum() # False

对于其他情况,您必须使用您的代码

^{pr2}$

一。在

def isValid(string, acceptableChars):
    return all(char in acceptableChars for char in string)

相关问题 更多 >