Форум сайта python.su
Доброго времени суток!
Занимаюсь Питоном совсем недавно. ООП и прочие тонкости программирования для меня темный лес… Тем не менее решил создать визуальное приложение. Проблема, с которой я столкнулся - не получается запрет ввода букв с клавиатуры в Entry. Причем:
1. При нажатии клавиш, все таки буквы кратковременно появляются в Entry.
2. В русской раскладке не определяется ASCII (это видно при выводе результатов в Label). В результате чего запрет ввода букв
не осуществляется.
#-*-coding:utf-8-*-
from Tkinter import*
def procedura(event):
simvol=event.char
if ord(simvol)<48:
txt1.delete(0,END)
lbl1.configure(text=ord(simvol))
elif ord(simvol)>57:
txt1.delete(0,END)
lbl1.configure(text=ord(simvol))
else:
lbl1.configure(text=ord(simvol))
form=Tk()
txt1=Entry(form)
txt1.bind(“<KeyRelease>”,procedura)
txt1.pack()
lbl1=Label(form)
lbl1.pack()
form.mainloop()
Офлайн
1. Это потому что вы забиндено событие KeyRelease, то есть оно срабатывает после отпускания клавиши, когда символ уже напечатался.
2. simvol=event.char.decode('utf-8')
P.S. и не забудь проверить len(simvol) перед ord (if not simvol:return)
P.P.S. Для подобных тем есть раздел gui
Отредактировано (Дек. 26, 2009 16:30:52)
Офлайн
Большое спасибо за помощь !!!
Офлайн