检测curses中的自动密钥重复

时间:2010-11-16 01:56:32

标签: linux keyboard ncurses

我正在Linux上使用curses编写一个小文本模式应用程序。

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

是否也可以区分真实密钥事件和密钥重复逻辑产生的事件?

背景:应用程序是一个小数据输入前端,用户可以在其中修改某些参数的整数。从长远来看,应用程序无需标准键盘即可运行。我只有四个数据输入按钮:'增加','减少','确定'和'取消'。

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

这是否可以使用curses的键盘输入功能?

1 个答案:

答案 0 :(得分:3)

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

最佳解决方案可能是使用UP / DOWN进行小步骤,使用PAGEUP / PAGEDOWN进行大步骤。