如何在不暂停程序等待输入的情况下使用 curses 响应按键?
How can I use curses to respond to a key press without pausing the program to wait for an input?
我想做的一个例子如下:
import curses
while True:
key = stdscr.getch()
if key == 119:
print("key w pressed")
else:
print("w key not pressed")
else 语句不断打印的地方,不仅是在输入一个键时,而 getch 没有 return119。换句话说,我不希望 getch 函数等待按键,我只希望它只 return 一个键 如果 一个键被按下,否则 return None 或类似的东西。
在 curses 中 window 有一个 nodelay
标志。如果设置为 true,getch 函数将不会等待用户输入,但如果没有输入将被读取 return -1
。
import curses
stdscr.nodelay(True)
while True:
key = stdscr.getch()
if key == -1:
print("no key was pressed")
elif key == 119:
print("key w pressed")
else:
print("different key than w was pressed")
我想做的一个例子如下:
import curses
while True:
key = stdscr.getch()
if key == 119:
print("key w pressed")
else:
print("w key not pressed")
else 语句不断打印的地方,不仅是在输入一个键时,而 getch 没有 return119。换句话说,我不希望 getch 函数等待按键,我只希望它只 return 一个键 如果 一个键被按下,否则 return None 或类似的东西。
在 curses 中 window 有一个 nodelay
标志。如果设置为 true,getch 函数将不会等待用户输入,但如果没有输入将被读取 return -1
。
import curses
stdscr.nodelay(True)
while True:
key = stdscr.getch()
if key == -1:
print("no key was pressed")
elif key == 119:
print("key w pressed")
else:
print("different key than w was pressed")