Класс 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 | pos() const |
Подробное описание
События мыши возникают при нажатии или отпускании кнопки мыши внутри виджета, а также при перемещении курсора мыши.
События перемещения мыши будут происходить только при нажатой кнопке мыши, если отслеживание мыши не было включено с помощью QWidget::setMouseTracking().
Qt автоматически захватывает мышь при нажатии кнопки мыши внутри виджета; виджет будет продолжать получать события мыши до тех пор, пока последняя кнопка мыши не будет отпущена.
Событие мыши содержит специальный флаг accept, который указывает, хочет ли получатель событие. Необходимо вызвать ignore(), если событие мыши не обрабатывается вашим виджетом. Событие мыши распространяется по цепочке родительских виджетов до тех пор, пока виджет не примет его с помощью accept() или обработчик событий не потребляет его.
Примечание: Если событие мыши передается виджету, для которого установлен Qt::WA_NoMousePropagation, это событие мыши не будет дальше распространяться по цепочке родительских виджетов.
Состояние клавиш модификаторов клавиатуры можно получить, вызвав функцию modifiers(), унаследованную от QInputEvent.
Функция position() возвращает положение курсора относительно виджета или элемента, получившего событие мыши. Если вы перемещаете виджет в результате события мыши, используйте глобальное положение, возвращаемое функцией globalPosition(), чтобы избежать дёргания.
Функция QWidget::setEnabled() может использоваться для включения или отключения событий мыши и клавиатуры для виджета.
Переопределите обработчики событий виджета 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::pos() const
Возвращает положение курсора мыши относительно виджета, получившего событие.
Если вы перемещаете виджет в результате события мыши, используйте глобальное положение, возвращаемое функцией globalPos(), чтобы избежать дёргания.
См. также x(), y() и globalPos().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qmouseevent.html