Python Tkinter Entry Фильтрация текста при вставке
Стоит задача: Допустить ко вводу в Entry только цифры.
Есть код, который обрабатывает ввод с клавиатуры. Если вставить в Entry "123123" - все ок. Если - "1231232h","1231232 ", " 1231232h" - в Entry останется прежний текст.
Какой метод применить, чтобы при вставке такого рода строк оставались только цифры? Пример: хочу вставить " 1231232h" - вставляется "1231232"
Строка должна быть определенной длинны, н-р 8 символьная.
P.S. Код который обрабатывает ввод с клавиатуры:
def is_valid(newval):
return re.match("^\d{0,8}$", newval) is not None
root = Tk()
root.title("Hi, boss")
root.geometry("240x80")
check = (root.register(is_valid), "%P")
entr = ttk.Entry(validate="key", validatecommand=check,justify='center')
entr.pack()
Источник: Stack Overflow на русском