QWheelEventでホイール回転の受け取り

マウスのホイールの回転はQWidgetwheelEventをオーバーライドすることで受け取ることが可能です。

一回のホイールの回転角がどれだけかはQWheelEventangleDelta関数から次の式で得ることができます。

int degrees = event.angleDelta().y() / 8;

ホイールの回転角は下の画像のようにyの値は15度進むたびに120単位で進むので実際の角度を求めるには8で割る必要があります。

ホイール回転角の求め方

もし、ホイールが上にスクロールされたら回転角はプラス、下なら回転角はマイナスです。

コード例

実際にカスタムウィジェット内でホイールの回転を受け取るコード例を示します。

class MyWidget : public QWidget
{
public:

    MyWidget(QWidget * parent = 0)
    : QWidget(parent){}
    
protected:
    /**ホイールイベントの受け取り*/
    void wheelEvent(QWheelEvent * e)
    {
        int degress = e.angleDelta() / 8;
        
        ///処理...
    }
};

回転角の求め方さえ注意すれば後は簡単です。

以上、ホイール回転イベントの受け取り方でした。では、また!

関連項目
プライバシーポリシー