海龟绘图中使用的所有关键事件名称是否有完整列表?

10

在使用Python的Turtle模块时,根据官方文档,我使用了一些关键事件

turtle.onkey(fun, key)

参数:

  • fun - 一个没有参数或为None的函数
  • key - 一个字符串:键(例如“a”)或键符号(例如“space”)

现在有趣的是,当你调用1)onkeyrelease()方法并将未注册的字符串(如空字符串("")或"+"等)作为key参数传递时:

turtle.onkeyrelease(lambda: print("Got key event while listening to none."), "")

无论用户按下哪个键,程序都会输出“Got key event ...”,这正是this question中的问题。
不幸的是,我在文档或互联网上找不到更多关于此行为的信息。所以我想知道是否有一个完整的支持所有编程键事件使用的键名字符串列表?

1) 问题中使用的基本设置:

import turtle
turtle.setup(700,500)
turtleWindow = turtle.Screen()
turtleWindow.onkey(lambda: print("You pressed 'a'"), "a")
turtleWindow.listen()

阅读源代码,卢克。 - MattDMo
我不确定它们是否直接列在turle源上(但我可能是错的)。我猜想你所寻找的依赖于tkinter实现,如果你仍然找不到它们,那么也许你可以从那一方面入手。 - mgc
@mgc - 你说得对,研究tkinter的实现是一个很好的起点,因为turtle使用它。 ;) - elegent
1个回答

10

我浏览了turtle.py的源代码,得出了和mgc相同的结论,那就是这些按键是tkinter的一部分,而不是turtle的。我并不想阅读整个tkinter源代码,于是我在网上搜索到了Tk文档中的这个全部键码列表,以及适用于Latin-1键盘的缩写列表(它没有单个字母,但它们也是有效的键标识符,例如"Q")。我不确定它们是否区分大小写,因此你需要进行一些实验。


非常感谢 :) 我还找到了 Latin-1 键盘的缩写列表 - 在我看来它们是不区分大小写的。但我仍然想知道为什么文档中没有提到这一点... - elegent
2
缩略列表的链接已经失效了。幸运的是,完整列表的链接仍然有效。 - Wildcard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接