Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “无法打印”;event.char“;使用Tkinter_Python_Tkinter - Fatal编程技术网

Python “无法打印”;event.char“;使用Tkinter

Python “无法打印”;event.char“;使用Tkinter,python,tkinter,Python,Tkinter,我在Python2.7中使用Pycharm IDE在一台Macbook中成功地运行了这个程序。我按下向上箭头键,event.char不为空,它可以打印出一些东西。然而,在另一个Macbook或windows系统中,当我按下非字母键时,它无法打印出任何内容,我看到的只是“按:”。当我按下字母键时,它工作得很好,它会打印出字母,比如“press:A”。任何想法都值得赞赏 # from Tkinter import * #Entry def printkey(event): prin

我在Python2.7中使用Pycharm IDE在一台Macbook中成功地运行了这个程序。我按下向上箭头键,event.char不为空,它可以打印出一些东西。然而,在另一个Macbook或windows系统中,当我按下非字母键时,它无法打印出任何内容,我看到的只是“按:”。当我按下字母键时,它工作得很好,它会打印出字母,比如“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()
#
从Tkinter进口*
#入口
def打印密钥(事件):
打印('press:'+event.char)
#
root=Tk()
#输入
条目=条目(根)
#
entry.bind(“”,printkey)
#
entry.pack()
root.mainloop()

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

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

  • char
    :作为键代码的单个字符串
  • keysym
    :作为键符号名的字符串
后者显然就是你要找的

你可以在这里找到

事件的其他
Tkinter对象:

  • num
    :按钮编号(仅适用于鼠标按钮事件);1岁及以上
  • x
    y
    :鼠标相对于小部件左上角的位置,以像素为单位
  • x_root
    y_root
    :鼠标相对于屏幕左上角的位置,以像素为单位
  • 小部件
    :发生事件的小部件
因此,您的代码现在应该如下所示:

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()
从Tkinter导入*
#入口
def打印密钥(事件):
打印('press:'+event.keysym)
#
root=Tk()
#输入
条目=条目(根)
#
entry.bind(“”,printkey)
#
entry.pack()
root.mainloop()

您可以使用
event.keysym