3

Linuxでcursesを使用して小さなテキストモードアプリケーションを書いています。

キーボード入力には、curses関数を使用します。キーの自動リピートは機能します。たとえば、キーを押したままにすると、キーをもう一度離すまで複数のキーイベントが発生します。

実際のキーイベントとキーリピートロジックによって生成されたイベントを区別することもできますか?

背景:このアプリケーションは、ユーザーが特定のパラメーターの整数を変更できる小さなデータ入力フロントエンドです。長期的には、アプリケーションは標準のキーボードがなくても動作します。データ入力用のボタンは、「増加」、「減少」、「OK」、「キャンセル」の4つだけです。

番号の範囲が広いので、ユーザーがキーを押しているかどうかを知りたいです。彼がそうする場合、私は私の数を1つ増やすのではなく、10またはおそらく100ずつ増やすことによって、私の数値範囲をより速くスキャンできます。

これはcursesのキーボード入力機能で可能ですか?

4

1 に答える 1

3

いいえ - curses は端末からキーを受け取るだけです。本当に必要な場合は、各キーを押す間の遅延を調べて、キーの繰り返しが自動化されているかどうかを確認してみてください。ただし、特にリモート接続では、遅延がネットワーク遅延の影響を受けるため、これは適切な解決策ではない可能性があります。

最善の解決策は、小さなステップには UP/DOWN を使用し、大きなステップには PAGEUP/PAGEDOWN を使用することです。

于 2010-11-16T02:06:52.053 に答える