シナリオは以下の通りです: アクティブなウィジェットがQSpinBoxの場合、そのボックスの矢印をクリックするかクリックして値を変更できますまたは押すかがページアップ/ページダウン/ ▲ / ▼ を保持することもできます。アップ/ダウン(キーボード)を押しながらQSpinBoxのスクロールを遅らせるには
問題は、いくつかのミリ秒が必要なvalueChanged()です。 スクロールはここでは遅く(加速がオフ)ように見えるので、私はpermascroll(マウス)またはボックスの矢印をクリックして保持するが、私のキーボード(加速もオフ)を使用すると、scrollspeedタイミングの問題を引き起こすはるかに高速です。アプリケーションは遅くなり、イベントキューが終了するまで数秒間フリーズします。
キーボード入力を使用することを許可する必要があります(キーボードキーの保持を含む)ので、矢印/ページのキーの繰り返し速度を遅くする方法があるかどうかを知りたいと思います。
実際には、タイムアウト時にスピンボックスの値を渡す値が変更されたときに200ミリ秒オンショットタイマーをトリガーしています。タイマーは、実行されていない場合にのみトリガーされます。つまり、値を変更すると、常に200ミリ秒の遅延があり、更新頻度は5更新/秒またはそれ以下にしかなりません。実際には機能しますが、キーの繰り返しレートを何とか減らすことでこれを改善したいと思っています。
これは実際には私の問題を解決するものではありません。なぜなら、この場合はイベントフィルタにもタイマーが必要で、実際にはタイマーを使いたくないからです。 –
いいえ、タイマーは必要ありません。最後のイベント以降の時間差を計算するだけで済むので、最後に渡されたイベントの時間を保存して、次のイベントが受け渡されるか無視されるかを判断する必要があります。 –
オクラホマ、私はそれを試し、もっとうまくいくか見てみましょう。 –