Посидев да поразмыслив, по аналогии с JQuery можно отключить работу события. Если же событие допустимо (т.е. входит в список допустимых), то включить обработку события и сгенерировать событие и потом, естественно, опять отключить.
Можно объяснить на пальцах так:
1. Отключаем реакцию виджета на нажатие клавиши и перехватываем их код.
2. Если код из допустимых, то включаем реакцию на нажатие и вызываем нажатие ручками.
3. Опять отключаем реакцию на нажатие, чтобы можно было перехватывать следующее нажатие (фактически возвращаемся к пункту 1)
В этом случае можно перехватывать не только цифры но и другие события. Пример кода:
import Tkinter
#
#
def main(event):
for cod in keys:
l_lsb.insert("end", "cod: %s - key: %s" %(cod, keys[cod]))
#
#
def analysis(event):
keys = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "BackSpace"]
if event.keysym in keys:
e_ent.bindtags("Entry")
e_ent.event_generate("<KeyPress-%s>" % event.keysym)
e_ent.bindtags(e_ent)
#
root = Tkinter.Tk()
#
e_ent = Tkinter.Entry(root, width=15)
e_ent.bind("<Any-KeyPress>", analysis)
e_ent.focus_force()
e_ent.bindtags(e_ent)
e_ent.pack()
#
l_lsb = Tkinter.Listbox(root, width=15, height=5)
l_lsb.pack()
#
b_but = Tkinter.Button(root, text="Esep")
b_but.bind('<Button-1>', main)
b_but.pack()
#
root.mainloop()
В этом коде будет работать не только клавиши цифр, но и клавиша “забой символа”.
Будут вопросы - пишите.