获取用户输入
对于一个应用来说,仅有输出是不完整的,能够获取输入并产生相应的输出才是一个完整的应用。在Curses库中,常用.getch()
函数来获得用户输入的字符,这个函数会返回用户按下的键相对应的ASCII码值,其中包括PAGE UP
、PAGE DOWN
、Shift
等键都有对应的整数值。
根据窗口是否调用了.nodelay(flag)
方法,.getch()
方法会有阻塞和非阻塞两种工作方式。在阻塞模式下,应用会停下来等待用户输入;而在非阻塞模式下,如果获取不到用户的输入,.getch()
会返回-1
。
具体使用可见以下示例:
import curses
stdscr = curses.init_scr()
curses.noecho()
stdscr.nodelay(False) # 使用阻塞模式
while True:
key = stdscr.getch()
if key == ord('a'):
pass
if key == ord('q'):
break
curses.echo()
curses.endwin()
Curses库还提供了.getstr()
函数,但是该函数的使用限制较多,一般并不推荐使用。