2010-11-16 63 views
1

我在Linux上使用curses编写了一个小文本模式应用程序。检测curses中的自动键重复

对于键盘输入,我使用curses函数。重要的自动重复工作,例如如果我按住一个键,我会得到多个关键事件,直到我再次释放密钥。

是否有可能区分真正的键事件和键重复逻辑生成的事件?

背景:该应用程序是一个小数据输入前端,用户可以修改某些参数的整数。从长远来看,该应用程序将在没有标准键盘的情况下工作。我只有四个数据输入按钮:'增加','减少','确定'和'取消'。

由于数字范围很大,我想知道用户是否按下了一个键。如果他这样做,我可以通过我的数字范围更快地扫描,而不是将我的数字递增1,而是递增10或100。如果用户oth敲击键,则输入方法应该再次精确,并且仅增加或减少数字。

这可能与curses的键盘输入功能?

回答

2

否 - curses只是从终端接收密钥。如果你真的需要它,你可以尝试来查看是否通过查看每次按键之间的延迟来自动或不按键重复。但是,特别是通过远程连接,这可能不是一个好的解决方案,因为延迟会受到网络延迟的影响。

最好的解决方案可能是使用UP/DOWN小步骤和PAGEUP/PAGEDOWN大步骤。

+0

没错。请记住,终端可能是ssh之类的远程会话,在这种情况下,密钥重复逻辑甚至不在与curses应用程序运行在同一台机器上。 – caf 2010-11-16 03:33:30

+0

不是我希望的答案,但你是对的..似乎不可能。谢谢,ThiefMaster。 – 2010-11-17 02:38:49