В поле ввода Entry необходимо ограничить ввод символов, кроме всех цифр и точек

Друзья, знаю что такой вопрос уже был с определенным ответом, но в том ответе можно вводить только одну точку, а я нуждаюсь в вводе большего количества, как минимум 3 точек. И вопрос может и глупый, но я не могу понять, что нужно изменить в коде, что бы можно было вводить также только цыфры, но с большим количеством точек. Буду очень признателен за ответ(:

вот код :

import tkinter as tk

window = tk.Tk()
window.title("Okno")

def validate(new_value):
    try:
        if new_value == "" or new_value == "-" or new_value == "+":
            return True
        _str = str(float(new_value))
        return True
    except:
        return False


que = tk.Label(window, text="Введите цифры")

vcmd = (window.register(validate), '%P')
ans = tk.Entry(window, validate='key', validatecommand=vcmd)

que.grid(row=0, column=0, sticky="e")
ans.grid(row=0, column=1)
ans.focus()

window.mainloop()

Ответы (1 шт):

Автор решения: insolor

Если допустимы только цифры и точки, то меняете функцию валидации таким образом:

import string


def validate(new_value):
    return all(c in string.digits or c == '.' for c in new_value)

Эта функция проверяет, что все символы в строке соответствуют условию
c in string.digits or c == '.' (т.е. символ или цифра (digit), или точка).

Пустая строка тоже пройдет через это условие. Если пустые строки недопустимы, то нужно добавить дополнительную проверку:

def validate(new_value):
    return new_value and all(c in string.digits or c == '.' for c in new_value)
→ Ссылка