Класс QMouseEvent
Класс QMouseEvent содержит параметры, описывающие событие мыши. Подробнее...
| Заголовок: | #include <QMouseEvent> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследует: | QSinglePointEvent |
Открытые функции
| QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice()) | |
| QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice()) | |
| QMouseEvent(QEvent::Type type, const QPointF &localPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice()) | |
| Qt::MouseEventFlags | flags() const |
| QPoint | globalPos() const |
| int | globalX() const |
| int | globalY() const |
| QPointF | localPos() const |
| QPoint | pos() const |
| QPointF | screenPos() const |
| QPointF | windowPos() const |
| int | x() const |
| int | y() const |
Подробное описание
События мыши возникают при нажатии или отпускании кнопки мыши внутри виджета или при перемещении курсора мыши.
События перемещения мыши будут происходить только при нажатой кнопке мыши, если отслеживание мыши не было включено с помощью QWidget::setMouseTracking().
Qt автоматически захватывает мышь при нажатии кнопки мыши внутри виджета; виджет будет продолжать получать события мыши до тех пор, пока последняя кнопка мыши не будет отпущена.
Событие мыши содержит специальный флаг подтверждения, указывающий, хочет ли получатель событие. Вы должны вызвать ignore(), если событие мыши не обрабатывается вашим виджетом. Событие мыши распространяется вверх по цепочке родительских виджетов до тех пор, пока виджет не примет его с помощью accept(), или обработчик событий не потребляет его.
Примечание: Если событие мыши распространяется на виджет, для которого установлен Qt::WA_NoMousePropagation, это событие мыши не будет распространяться дальше по цепочке родительских виджетов.
Состояние клавиш модификаторов клавиатуры можно найти, вызвав функцию modifiers(), унаследованную от QInputEvent.
Функция position() возвращает позицию курсора относительно виджета или элемента, получившего событие мыши. Если вы перемещаете виджет в результате события мыши, используйте глобальную позицию, возвращаемую globalPosition(), чтобы избежать дрожания.
Функция QWidget::setEnabled() может использоваться для включения или отключения событий мыши и клавиатуры для виджета.
Переопределите обработчики событий виджета QWidget, QWidget::mousePressEvent(), QWidget::mouseReleaseEvent(), QWidget::mouseDoubleClickEvent() и QWidget::mouseMoveEvent(), чтобы получать события мыши в собственных виджетах.
См. также QWidget::setMouseTracking(), QWidget::grabMouse() и QCursor::pos().
Документация по функциям-членам
QMouseEvent::QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
Конструирует объект события мыши.
Параметр type должен быть QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick или QEvent::MouseMove.
Точки localPos, scenePos и globalPos указывают положение курсора мыши относительно получающего виджета или элемента, окна и экрана или рабочего стола соответственно.
Кнопка button, вызвавшая событие, задаётся значением из перечисления Qt::MouseButton. Если тип события type равен MouseMove, соответствующая кнопка для этого события — Qt::NoButton. buttons — состояние всех кнопок в момент события, modifiers — состояние всех модификаторов клавиатуры.
QMouseEvent::QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
Конструирует объект события мыши, исходящего из device.
Параметр type должен быть QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick или QEvent::MouseMove.
localPos — положение курсора мыши относительно получающего виджета или элемента. Положение курсора в координатах экрана задаётся globalPos. Положение окна устанавливается в то же значение, что и localPos. Кнопка button, вызвавшая событие, задаётся значением из перечисления Qt::MouseButton. Если тип события type равен MouseMove, соответствующая кнопка для этого события — Qt::NoButton. buttons — состояние всех кнопок в момент события, modifiers — состояние всех модификаторов клавиатуры.
QMouseEvent::QMouseEvent(QEvent::Type type, const QPointF &localPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
Конструирует объект события мыши, исходящего из device.
Параметр type должен быть одним из QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick или QEvent::MouseMove.
localPos — положение курсора мыши относительно получающего виджета или элемента. Положение окна устанавливается в то же значение, что и localPos. Кнопка button, вызвавшая событие, задаётся значением из перечисления Qt::MouseButton. Если тип события type равен MouseMove, соответствующая кнопка для этого события — Qt::NoButton. Состояние мыши и клавиатуры в момент события задаются параметрами buttons и modifiers.
Метод globalPosition() инициализируется значением QCursor::pos(), что может быть некорректно. Используйте другой конструктор, чтобы явно указать глобальные координаты.
[since 5.3] Qt::MouseEventFlags QMouseEvent::flags() const
Возвращает флаги события мыши.
Флаги события мыши предоставляют дополнительную информацию об событии.
Функция была добавлена в Qt 5.3.
См. также Qt::MouseEventFlag и QGraphicsSceneMouseEvent::flags().
QPoint QMouseEvent::globalPos() const
Возвращает глобальные координаты курсора мыши в момент события. Это важно для асинхронных систем окон, таких как X11. При перемещении виджетов в ответ на события мыши, globalPos() может значительно отличаться от текущего положения указателя QCursor::pos() и от QWidget::mapToGlobal(pos()).
См. также globalX() и globalY().
int QMouseEvent::globalX() const
Возвращает глобальную x-координату курсора мыши в момент события.
См. также globalY() и globalPos().
int QMouseEvent::globalY() const
Возвращает глобальную y-координату курсора мыши в момент события.
См. также globalX() и globalPos().
[since 5.0] QPointF QMouseEvent::localPos() const
Возвращает координаты курсора мыши как QPointF, относительно виджета или элемента, получившего событие.
Если вы перемещаете виджет в результате события мыши, используйте координаты на экране, возвращаемые методом screenPos(), чтобы избежать эффекта дрожания.
Функция была добавлена в Qt 5.0.
См. также x(), y(), windowPos() и screenPos().
QPoint QMouseEvent::pos() const
Возвращает координаты курсора мыши, относительно виджета, получившего событие.
Если вы перемещаете виджет в результате события мыши, используйте глобальные координаты, возвращаемые методом globalPos(), чтобы избежать эффекта дрожания.
См. также x(), y() и globalPos().
[since 5.0] QPointF QMouseEvent::screenPos() const
Возвращает координаты курсора мыши как QPointF, относительно экрана, получившего событие.
Функция была добавлена в Qt 5.0.
См. также x(), y(), pos(), localPos() и windowPos().
[since 5.0] QPointF QMouseEvent::windowPos() const
Возвращает координаты курсора мыши как QPointF, относительно окна, получившего событие.
Если вы перемещаете виджет в результате события мыши, используйте глобальные координаты, возвращаемые методом globalPos(), чтобы избежать эффекта дрожания.
Функция была добавлена в Qt 5.0.
См. также x(), y(), pos(), localPos() и screenPos().
int QMouseEvent::x() const
Возвращает x-координату курсора мыши, относительно виджета, получившего событие.
int QMouseEvent::y() const
Возвращает y-координату курсора мыши, относительно виджета, получившего событие.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qmouseevent.html