<< QT && C++トップ
mouseMoveEventが呼ばれない場合の対処法
QWidgetなどのウィジェットクラスにはマウスの動きを感知するためのイベント関数としてmouseMoveEventが用意されています。
これを使ってマウスの動きを受け取ろうとするとマウスのボタンを押している間しか呼ばれません。
リファレンスを見てみると、どうやら標準ではただ単にマウスが動いているだけの場合はこの関数は呼ばれないみたいです。
ウィジェット内にマウスが入ってきたかどうかを調べたい場合はsetMouseTracking関数でマウストラッキングを有効にすればOKです。
widget->setMouseTracking(true);
もしfalseならマウスをドラッグしている間しか呼ばれません。
マウストラッキングが必要な場合だけtrueにしておいた方がパフォーマンス的な意味で良いみたいです。
© Kaz