python - tkinter 条目小部件的验证
问题描述
我的 tkinter GUI 应用程序中有一个输入字段。entry 应该只接受包括小数点在内的数字。我使用了一个函数来验证条目。问题是,如果前面有数字,它不接受小数点 (.)。(示例 25.3 不会接受)。如果开头有一个点,那么之后它不接受任何数字。谁能帮我解决这个问题。以及将输入字段中的最大值限制为 1000 的任何建议?
import tkinter as tk
def acceptNumber(inp):
if inp.isdigit():
return True
elif inp is "":
return True
elif inp is ".":
return True
else:
return False
win = tk.Tk()
reg = win.register(acceptNumber)
entryHere =tk.Entry(win)
entryHere.place(x=400, y=200)
entryHere.config(validate="key", validatecommand =(reg, '%P'))
win.mainloop()
解决方案
这接受不大于 1000 的有效十进制数:
def acceptNumber(inp):
try:
return True if inp == '' else float(inp) <= 1000
except:
return False
推荐阅读
- ruby-on-rails-5 - 通过关联模型的不同名称关联
- php - WordPress:突出显示搜索结果 - 但保持与页面上最初相同的大小写
- r - 如何减少子图之间的间距
- python - 搜索excel列并检索行
- regex - Bash正则表达式解析ss输出
- javascript - js - 使用 onkeyup 的时间跨度
- javascript - 我需要从状态中删除一个数组项。我怎样才能做到这一点?
- python - 如何在保存在数据库中的值上显示刻度线以在 Django 中更新表单
- node.js - 无法为我的 nodejs/axios 应用程序提供 Let'sEncrypt 的正确根证书
- c++ - 使用switch c ++的简单货币转换器