當我在使用curses
如何使Python get_wch捕獲輸入密鑰?
ch = wnd.getch()
的Python下,我可以捕捉回車鍵這wnd.getch
返回10.然而,它沒有當我被替換get_wch
工作getch
。 get_wch
有沒有問題?
當我在使用curses
如何使Python get_wch捕獲輸入密鑰?
ch = wnd.getch()
的Python下,我可以捕捉回車鍵這wnd.getch
返回10.然而,它沒有當我被替換get_wch
工作getch
。 get_wch
有沒有問題?
功能getch
和get_wch
具有不同的接口:
getch
返回字符get_wch
返回狀態代碼,和套經由作爲參數傳遞的指針寬字符。他們使用不同的接口,因爲特殊鍵(如KEY_HOME
)可以作爲getch
超出了「正常」(8位)字符的範圍「額外」字符處理。你不能用寬字符做這件事(不容易,因爲寬字符範圍的末尾不太確定),所以get_wch
使用狀態碼來判斷它通過指針設置的值是寬字符還是特殊鍵。
儘管手冊頁已經足夠清晰,但是python開發人員在向curses包裝器添加特性時沒有注意到這種區別。所述描述 Python文檔中對應於getch
而非get_wch
:
Issues #15785: curses.get_wch() returns keypad codes incorrectly
的錯誤報告表明,修復塗布到Python 3.4。
16.10. curses — Terminal handling for character-cell displays
window.get_wch([y, x])
獲取一個寬字符。返回大多數鍵的字符,或功能鍵,小鍵盤鍵和其他特殊鍵的整數。
版本3.3中的新功能。
進一步閱讀:
PS:TAB鍵也是問題之一。 'getch'返回9,但'get_wch'也不起作用。 – xis
適合我。它返回'\ n'爲輸入和'\ t'爲tab。 –