2013-10-04 21 views
1

當我在使用curses如何使Python get_wch捕獲輸入密鑰?

ch = wnd.getch() 

的Python下,我可以捕捉回車鍵這wnd.getch返回10.然而,它沒有當我被替換get_wch工作getchget_wch有沒有問題?

+0

PS:TAB鍵也是問題之一。 'getch'返回9,但'get_wch'也不起作用。 – xis

+0

適合我。它返回'\ n'爲輸入和'\ t'爲tab。 –

回答

0

功能getchget_wch具有不同的接口:

  • getch返回字符
  • get_wch返回狀態代碼,和經由作爲參數傳遞的指針寬字符。

他們使用不同的接口,因爲特殊鍵(如KEY_HOME)可以作爲getch超出了「正常」(8位)字符的範圍「額外」字符處理。你不能用寬字符做這件事(不容易,因爲寬字符範圍的末尾不太確定),所以get_wch使用狀態碼來判斷它通過指針設置的值是寬字符還是特殊鍵。

儘管手冊頁已經足夠清晰,但是python開發人員在向curses包裝器添加特性時沒有注意到這種區別。所述描述 Python文檔中對應於getch而非get_wch

獲取一個寬字符。返回大多數鍵的字符,或功能鍵,小鍵盤鍵和其他特殊鍵的整數。

版本3.3中的新功能。

進一步閱讀: