诅咒 KEY_RIGHT 无法识别

curses KEY_RIGHT not recognised

我正在努力了解 Python curses 的基础知识,并构建一个检测箭头键按下的最小工作程序。

为什么curses.KEY_RIGHT在下面的代码中似乎没有被检测到?

import curses

def main(win):
    win.nodelay(False)
    key= ""
    while key != "q": 
       key = win.getkey() 
       if key == curses.KEY_RIGHT:
           win.addstr("You pressed RIGHT")
       else:
           win.addstr(str(key)) 

curses.wrapper(main)

getkey returns key 转换为字符串,而 curses.KEY_RIGHT 是整数。有两种方法可以继续:

  • 如果您将 win.getkey() 替换为 win.getch(),程序将按照您的预期进行(并打印 else 情况下的整数)。您将与 ord('q')(又是一个整数)进行比较,以识别试图退出的用户。
  • key == "KEY_RIGHT" 替换 key == curses.KEY_RIGHT 也可以解决问题。

howto 详细说明了 getkeygetch 之间的区别。