首页 > 解决方案 > 使用 tkinter 对整数和浮点值进行条目小部件验证

问题描述

所以我有一些代码可用于验证条目小部件,以便只能输入整数值。我想达到相同的效果,但整数值和浮点值都被排除在外,而不是只有整数值。

from tkinter import *
root = Tk()
def testVal(inp,acttyp):
    if acttyp == '1': #insert
        if not inp.isdigit():
            return False
    return True
entry = Entry(root, validate="key")
entry['validatecommand'] = (entry.register(testVal),'%P','%d')
entry.pack()

root.mainloop()

标签: validationtkinterfloating-pointintegerwidget

解决方案


您可以简单地调用float()输入文本来确定它是整数还是浮点数:

from tkinter import *

def validate_entry(inp):
    try:
        float(inp)
    except:
        return False
    return True

root = Tk()
Entry(root, validate='key', vcmd=(root.register(validate_entry), '%P')).pack()
root.mainloop()

推荐阅读