我希望用户只能输入 float (即从 0 到 9 的数字和小数点应该显示,其他字符不应该显示)。我怎样才能做到这一点?
编辑 我需要获取诸如“4”或“3.5”或“.9”之类的值,而不是“10e23”之类的值
不一致的值也应该被拒绝,例如“10.12.45”...
最佳答案
由于问题“How to extract a float number from a string in Python”,我终于得到了一个可以接受的答案
numeric_const_pattern = r"""
[-+]? # optional sign
(?:
(?: \d* \. \d+ ) # .1 .12 .123 etc 9.1 etc 98.1 etc
|
(?: \d+ \.? ) # 1. 12. 123. etc 1 12 123 etc
)
# followed by optional exponent part if desired
(?: [Ee] [+-]? \d+ ) ?
"""
self.rx = re.compile(numeric_const_pattern, re.VERBOSE)
在初始化部分,
和:
def validate_float(self, widget, entry):
entry_text = entry.get_text()
newtext = self.rx.findall(entry_text)
if len(newtext) :
entry.set_text(newtext[0])
else:
entry.set_text("")
连接到条目的“已更改”事件。非常感谢所有提供帮助的人。
关于python - 如何让 pygtk 条目只接受 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7318965/