无法打印“事件.char“使用Tkin

2024-09-30 01:21:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python2.7中成功地运行了这一点,并在一台Macbook中使用Pycharm IDE。我按向上箭头键,事件.char不为null,它可以打印出某些内容。然而,在其他Macbook或windows系统中,当我按下不是字母的键时,它不能打印出任何东西,我看到的只是“press:”。当我按字母键时,它工作得很好,它会打印出像“press: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()

Tags: event内容字母事件rootidenullpycharm
2条回答

在您的代码中,event是一个Tkinter事件对象。此对象有一个简短的属性列表,其中两个属性与键盘事件有关(仅限):

  • char:是密钥代码的单个字符串
  • keysym:一个字符串,是密钥的符号名

后一个显然是你要找的。在

您可以在这里找到a list enumerating the keysyms that will be recognized by Tk。在

eventTkinter对象的其他attributes

  • num:按钮编号(仅适用于鼠标按钮事件);1及以上
  • xy:鼠标相对于小部件左上角的位置,以像素为单位
  • x_rooty_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()

char仅当按下的键对应于字符时才包含值。如果没有,则需要打印或翻译其他属性之一,例如keysym。在

相关问题 更多 >

    热门问题