【发布时间】:2011-05-12 11:41:26
【问题描述】:
NCurses 有问题...我需要处理所有键,例如 Esc、Alt+F kbd> 等 问题是代码相似......即:
Esc - 27
Alt+A - 27 65
例如,Alt+[key] 组合的双重代码 类似于 到 Esc 键... 任何想法如何处理?
【问题讨论】:
NCurses 有问题...我需要处理所有键,例如 Esc、Alt+F kbd> 等 问题是代码相似......即:
Esc - 27
Alt+A - 27 65
例如,Alt+[key] 组合的双重代码 类似于 到 Esc 键... 任何想法如何处理?
【问题讨论】:
这里是python的一个例子:
key = self.screen.getch()
if key == ord('q'): # quit
go = False
elif key == 27: # Esc or Alt
# Don't wait for another key
# If it was Alt then curses has already sent the other key
# otherwise -1 is sent (Escape)
self.screen.nodelay(True)
n = self.screen.getch()
if n == -1:
# Escape was pressed
go = False
# Return to delay
self.screen.nodelay(False)
【讨论】:
解决:
【讨论】:
ESC,然后像[这样的另一个键,一个接一个非常快,我们的代码不能看到两个键都通过然后它会看起来不像ESC?因为我真的不知道终端如何在我第二次调用收集下一个我试图确定是否只是ESC 被击中的字符时知道这一点?!
[ 真的很快。但是,您通常可以使用如此短的超时,以至于没有人可以合理地击中它,并且大多数转义序列都足够长,以至于很难完美地击中每个键,例如25ms 彼此。另一方面,终端可能会比这更快。