-1

デフォルトでは、QSlider はカーソルが上にある場合にのみマウス ホイールに反応します。カーソルがどこにあるかに関係なく、マウスホイールでスライダーを制御したい(もちろん、アプリケーションにフォーカスがある場合のみ)。

それを達成するための最良の方法は何ですか?

マウスは信号を生成しないことを知りました。したがって、メイン ウィンドウで wheelEvent をオーバーライドし、raise または Lower メソッドを使用する必要があるようです。しかし、マウスがホバリングしているときに、スライダーの値が2倍に増加(または減少)する可能性があると思います。

繰り返しになりますが、私が説明したことを達成するための最良の方法は何ですか?

4

1 に答える 1

2

MainWindow で wheelEvent() をオーバーライドして、それをスライダー コントロールにリダイレクトすることができます。これは確かに 1 つのオプションです。

もう 1 つのオプションは、qApp インスタンスにイベント フィルターをインストールすることです。この偶数フィルターは、イベント タイプが QEvent::Wheel であるかどうかを確認し、レシーバーがスライダーでない場合は、再びスライダーにリダイレクトします。同様に機能するはずです。

于 2015-09-04T10:35:08.643 に答える