2016-01-21 14 views
2

雖然與Python's Turtle模塊玩弄,我使用了一些key events作爲官方文件中指出:是否有龜圖形使用的關鍵事件名稱的完整列表?

turtle.onkey(fun, key)

參數:

  • fun - 不帶參數的函數或無
  • key - 字符串:鍵(例如「a」)或鍵符號(例如「空格」)

現在,有趣的是,當你調用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() 
+0

閱讀[源碼](https://hg.python.org/cpython/file/3.5/Lib/turtle.py),盧克。 – MattDMo

+0

我不確定他們是否直接在turle資源上列出(但我可能是錯的)。我想你要找的東西依賴於tkinter的實現,所以如果你仍然無法找到它們,也許你可以看看那邊。 – mgc

+0

@mgc - 你是對的,考慮到tkinter的實現是一個很好的起點,因爲turtle使用它。 ;) – elegent

回答

3

我通過turtle.py源掃描並得出了相同的結論爲mgc,該鍵是tkinter一部分,而不是turtle。我不想通讀整個tkinter源文件,我做了一些Google搜索,在Tk文檔中找到了這個full list of keysyms,並且在Latin-1鍵盤上找到了這個abbreviated list(它缺少單個字母,但它們也是有效的密鑰標識符,例如作爲"Q")。我不確定它們是否區分大小寫,因此您必須進行一些實驗。

+0

非常感謝:)我還發現了Latin-1鍵盤的縮寫列表 - 它們是不區分大小寫的IMO。但我仍然想知道爲什麼沒有在文檔中提到這一點...... – elegent

相關問題