Как в поле ввода (entry) сделать запрет на написание букв? ( то есть, чтобы можно было писать только цифры)

Как написать код с помощью entry, разрешающий писать только цифры?

Вот код:

import tkinter as tk

window = tk.Tk()
window.title("Okno")
frm_form = tk.Frame(relief=tk.SUNKEN, borderwidth=3)
frm_form.pack()

que = tk.Label(master=frm_form, text="VVedite")
ans = tk.Entry(master=frm_form, width=100)
que.grid(row=0, column=0, sticky="e")
ans.grid(row=0, column=1)
window.mainloop()

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

Автор решения: S. Nick

Все механизмы проверки подробно описаны в документации tcl здесь: http://tcl.tk/man/tcl8.5/TkCmd/entry.htm#M7

Попробуйте так:

import tkinter as tk

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

def validate(new_value):                                                  # +++
    return new_value == "" or new_value.isnumeric()                       # +++

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

введите сюда описание изображения

→ Ссылка