我在Python 2.7中使用Pycharm IDE在一台Macbook中成功运行了这个。我按向上箭头键,event.char不为null,它可以打印出来的东西。但是,在其他Macbook或Windows系统中,当我按下非字母的键时,它无法打印出任何内容,我看到的只是“按:”。当我按下字母键时,它工作正常,并打印出像“按:A”这样的字母。任何想法都表示赞赏。
#
from Tkinter import *
#Entry
def printkey(event):
print('press:' + event.char)
#
root = Tk()
#input
entry = Entry(root)
#
entry.bind('<Key>', printkey)
#
entry.pack()
root.mainloop()
答案 0 :(得分:3)
在您的代码中,event
是一个Tkinter事件对象。此对象有一个简短的属性列表,其中包括与键盘事件相关的2个属性(仅限):
char
:单字符字符串,是关键代码keysym
:一个字符串,它是关键的符号名称后一个显然是你在寻找的。 p>
你会在这里找到a list enumerating the keysyms that will be recognized by Tk。
此event
Tkinter对象的其他attributes:
num
:按钮编号(仅适用于鼠标按钮事件); 1及以上x
, y
:相对于小组件左上角的鼠标位置(以像素为单位)x_root
, y_root
:相对于屏幕左上角的鼠标位置(以像素为单位)widget
:发生事件的小部件。所以你的代码现在应该是这样的:
from Tkinter import *
#Entry
def printkey(event):
print('press:' + event.keysym)
#
root = Tk()
#input
entry = Entry(root)
#
entry.bind('<Key>', printkey)
#
entry.pack()
root.mainloop()
答案 1 :(得分:2)
char
仅包含一个值。如果没有,则需要打印或翻译其他属性,例如keysym
。