诅咒KEY_RIGHT无法识别

时间:2020-08-20 17:32:03

标签: python curses

我正在努力研究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)

1 个答案:

答案 0 :(得分:1)

getkey返回转换为字符串的键,而curses.KEY_RIGHT是整数。有两种处理方式:

  • 如果将win.getkey()替换为win.getch(),则程序将执行您期望的操作(并在else情况下打印整数)。您将与ord('q')(再次是整数)进行比较,以识别试图退出的用户。
  • key == curses.KEY_RIGHT代替key == "KEY_RIGHT"也可以解决问题。

howtogetkeygetch之间的区别更多。