QHoverEvent Class

QHoverEventクラスは、マウスイベントを記述するパラメータを含んでいます。詳細...

Header: #include <QHoverEvent>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherits: QSinglePointEvent

パブリック関数

QHoverEvent(QEvent::Type type, const QPointF &scenePos, const QPointF &globalPos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
QPoint oldPos() const
QPointF oldPosF() const

詳細説明

マウスイベントは、マウスカーソルがウィジェットの中、外、またはウィジェット内に移動したとき、およびウィジェットがQt::WA_Hover 属性を持っている場合に発生します。

関数pos()は現在のカーソル位置を与え、oldPos()は古いマウス位置を与えます。

イベントQEvent::HoverEnterQEvent::HoverLeave 、イベントQEvent::EnterQEvent::Leave の間には、いくつかの類似点があります。しかし、HoverEnter と HoverLeave のイベント・ハンドラで update() を実行するため、これらはわずかに異なります。

QEvent::HoverMove も と若干異なります。トップレベル・ウィンドウAに子ウィンドウBがあり、その子ウィンドウBに子ウィンドウCがあるとします(すべてマウス・トラッキングが有効になっています):QEvent::MouseMove

ここで、カーソルをAの真ん中で上から下に動かすと、以下のようなQEvent::MouseMove イベントが発生する:

  1. A::MouseMove
  2. B::MouseMove
  3. C::MouseMove

QEvent::HoverMove でも同じイベントが発生します。ただし、イベントが受け入れられるかどうかに関係なく、イベントは常にトップレベルに伝搬します。Qt::WA_NoMousePropagation 属性でのみ伝搬が停止します。

この場合、イベントは以下のように発生します:

  1. A::HoverMove
  2. A::HoverMove, B::HoverMove
  3. A::HoverMove, B::HoverMove, C::HoverMove

メンバー関数説明

QHoverEvent::QHoverEvent(QEvent::Type type, const QPointF &scenePos, const QPointF &globalPos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())

device を起点とするホバーイベントオブジェクトを構築する。

type パラメータはQEvent::HoverEnter,QEvent::HoverLeave, またはQEvent::HoverMove でなければなりません。

scenePos は受信ウィンドウまたはシーンに対する現在のマウスカーソルの相対位置、oldPos はその前の位置、globalPos は絶対座標でのマウス位置である。modifiers はイベント発生時のすべてのキーボード修飾子の状態を保持する。

QPoint QHoverEvent::oldPos() const

イベントを受信したウィジェットからの相対座標で、マウスカーソルの前の位置を返す。前の位置がない場合、oldPos()はpos()と同じ位置を返します。

QEvent::HoverEnter イベントでは、この位置は常にQPoint(-1, -1) になります。

pos()も参照

QPointF QHoverEvent::oldPosF() const

イベントを受け取ったウィジェットからの相対位置で、マウスカーソルの前の位置を返します。前の位置がない場合、oldPosF() は posF() と同じ位置を返します。

QEvent::HoverEnter イベントでは、この位置は常にQPointF(-1, -1) になります。

posF()も参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。