проверка виджета ввода с помощью tkinter для целых чисел и значений с плавающей запятой - PullRequest
0 голосов
/ 07 марта 2019

Итак, у меня есть некоторый код, который можно использовать для проверки виджета ввода, чтобы можно было вводить только целочисленные значения.Я хотел бы добиться того же эффекта, но вместо целочисленных значений исключаются как целочисленные значения, так и значения с плавающей запятой.

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()

1 Ответ

1 голос
/ 07 марта 2019

Вы можете просто вызвать 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()
...