Класс QHoverEvent
Класс QHoverEvent содержит параметры, описывающие событие мыши. Подробнее...
| Заголовок: | #include <QHoverEvent> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследует: | QSinglePointEvent |
Открытые функции
| QHoverEvent(QEvent::Type type, const QPointF &pos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier, const QPointingDevice *device = QPointingDevice::primaryPointingDevice()) | |
| QPoint | oldPos() const |
| QPointF | oldPosF() const |
| QPoint | pos() const |
| QPointF | posF() const |
Подробное описание
События мыши происходят, когда курсор мыши перемещается в, из или внутри виджета, и если у виджета есть атрибут Qt::WA_Hover.
Функция pos() возвращает текущую позицию курсора, а oldPos() — предыдущую позицию мыши.
Существует несколько сходств между событиями QEvent::HoverEnter и QEvent::HoverLeave, и событиями QEvent::Enter и QEvent::Leave. Однако они немного отличаются, потому что в обработчике событий HoverEnter и HoverLeave выполняется обновление.
QEvent::HoverMove также немного отличается от QEvent::MouseMove. Рассмотрим главные окно A, содержащее дочернее окно B, которое в свою очередь содержит дочернее окно C (все с включенным отслеживанием мыши):
Теперь, если вы переместите курсор сверху вниз посередине A, вы получите следующие события QEvent::MouseMove:
- A::MouseMove
- B::MouseMove
- C::MouseMove
Вы получите те же события для QEvent::HoverMove, за исключением того, что событие всегда распространяется на верхний уровень, независимо от того, принято оно или нет. Оно будет останавливать распространение только с помощью атрибута Qt::WA_NoMousePropagation.
В этом случае события будут происходить следующим образом:
- A::HoverMove
- A::HoverMove, B::HoverMove
- A::HoverMove, B::HoverMove, C::HoverMove
Документация по членам-функциям
QHoverEvent::QHoverEvent(QEvent::Type type, const QPointF &pos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
Создаёт объект события наведения, исходящий от device.
Параметр type должен быть QEvent::HoverEnter, QEvent::HoverLeave или QEvent::HoverMove.
pos — текущая позиция курсора мыши относительно принимающего виджета, а oldPos — его предыдущая позиция. 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().
QPoint QHoverEvent::pos() const
Возвращает позицию курсора мыши относительно виджета, получившего событие.
Для событий QEvent::HoverLeave эта позиция всегда будет QPoint(-1, -1).
См. также oldPos().
QPointF QHoverEvent::posF() const
Возвращает позицию курсора мыши, относительно виджета, получившего событие.
Для событий QEvent::HoverLeave эта позиция всегда будет QPointF(-1, -1).
См. также oldPosF().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qhoverevent.html