Как в поле ввода (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()
