您好,我是Python的初学者,想知道如何让用户输入一个包含两位小数或更少的数字
答案 0 :(得分:0)
wx.TextCtrl
构造函数采用validator
参数。
您可以在此处使用wx.Validator
的任何子类来实现您想要的任何验证。
不幸的是,wxPython文档没有解释验证器如何工作得很好,所以你必须看看以C ++为中心的wxValidator
Overview。但wxPython确实带有IntValidator
,这是一个很好的例子。
请注意,有多种不同的方法可以强制执行此操作。
例如,您可以阻止他们输入任何无效字符。如果他们尝试输入.
,如果字符串中不存在.
,则该字符有效,除非您的右边缘位数超过两位数;如果他们试图输入一个数字,除非你在.
的右边并且那里已有两位数,否则它是有效的;其他任何事情都无效。您将覆盖OnChar
以提供此类强制执行。
或者您可以让他们输入他们想要的任何内容,然后在点击“确定”按钮时抱怨是否有太多数字。你可以为他们截断他们的输入,不管它,或者把它擦掉然后让它们重新开始。您已覆盖Validate
。
或者当他们退出控件时你可以做出抱怨。或者,而不是抱怨,你可以将它截断为两位数,并警告他们你已经这样做了。等等。
答案 1 :(得分:0)
查看wxPython演示,我可能会使用wx.lib.masked.numctrl。