Python如何强制用户输入为2dp

时间:2014-09-26 22:36:11

标签: python python-2.7 python-3.x wxpython ipython

您好,我是Python的初学者,想知道如何让用户输入一个包含两位小数或更少的数字

2 个答案:

答案 0 :(得分:0)

wx.TextCtrl构造函数采用validator参数。

您可以在此处使用wx.Validator的任何子类来实现您想要的任何验证。

不幸的是,wxPython文档没有解释验证器如何工作得很好,所以你必须看看以C ++为中心的wxValidator Overview。但wxPython确实带有IntValidator,这是一个很好的例子。

请注意,有多种不同的方法可以强制执行此操作。

例如,您可以阻止他们输入任何无效字符。如果他们尝试输入.,如果字符串中不存在.,则该字符有效,除非您的右边缘位数超过两位数;如果他们试图输入一个数字,除非你在.的右边并且那里已有两位数,否则它是有效的;其他任何事情都无效。您将覆盖OnChar以提供此类强制执行。

或者您可以让他们输入他们想要的任何内容,然后在点击“确定”按钮时抱怨是否有太多数字。你可以为他们截断他们的输入,不管它,或者把它擦掉然后让它们重新开始。您已覆盖Validate

或者当他们退出控件时你可以做出抱怨。或者,而不是抱怨,你可以将它截断为两位数,并警告他们你已经这样做了。等等。

答案 1 :(得分:0)

查看wxPython演示,我可能会使用wx.lib.masked.numctrl。