Класс QWheelEvent
Класс QWheelEvent содержит параметры, описывающие событие прокрутки колесика мыши. Подробнее...
| Заголовок: | #include <QWheelEvent> |
| qmake: | QT += gui |
| Наследует: | QInputEvent |
Открытые функции
| QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) | |
| QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase) | |
| QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, Qt::MouseEventSource source) | |
| QPoint | angleDelta() const |
| Qt::MouseButtons | buttons() const |
| QPoint | globalPos() const |
| const QPointF & | globalPosF() const |
| int | globalX() const |
| int | globalY() const |
| Qt::ScrollPhase | phase() const |
| QPoint | pixelDelta() const |
| QPoint | pos() const |
| const QPointF & | posF() const |
| Qt::MouseEventSource | source() const |
| int | x() const |
| int | y() const |
- 2 открытых функции, унаследованные от QInputEvent
- 6 открытых функций, унаследованных от QEvent
Дополнительные унаследованные члены
Подробное описание
Класс QWheelEvent содержит параметры, описывающие событие прокрутки колесика мыши.
События прокрутки отправляются виджету под курсором мыши, но если этот виджет не обрабатывает событие, оно отправляется виджету, имеющему фокус. События прокрутки генерируются как для колесика мыши, так и для жестов прокрутки на трекпаде. Есть два способа чтения дельты события прокрутки: angleDelta() возвращает дельту в градусах поворота колесика. Это значение всегда предоставляется. pixelDelta() возвращает дельту в пикселях экрана и доступна на платформах с высокоразрешающими трекпадами, такими как macOS. В этом случае source() будет возвращать Qt::MouseEventSynthesizedBySystem.
Функции pos() и globalPos() возвращают положение курсора мыши в момент события.
Событие прокрутки содержит специальный флаг подтверждения, который указывает, хочет ли получатель обработать событие. Вы должны вызвать ignore(), если не обрабатываете событие прокрутки; это гарантирует, что оно будет отправлено родительскому виджету.
Функция QWidget::setEnabled() может использоваться для включения или выключения событий мыши и клавиатуры для виджета.
Обработчик событий QWidget::wheelEvent() получает события прокрутки.
См. также QMouseEvent и QWidget::grabMouse().
Документация функций-членов
QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
Конструктор объекта события прокрутки.
pos указывает положение курсора мыши в окне. Положение в глобальных координатах задается параметром globalPos.
pixelDelta содержит расстояние прокрутки в пикселях на экране, а angleDelta — расстояние поворота колесика. pixelDelta является необязательным и может быть нулевым.
Состояния мыши и клавиатуры в момент события задаются параметрами buttons и modifiers.
Для обратной совместимости событие также может содержать данные однонаправленного события прокрутки: qt4Delta указывает поворот, а qt4Orientation — направление.
Свойство phase() инициализируется значением Qt::ScrollUpdate. Используйте другой конструктор, чтобы явно указать значение фазы.
См. также posF(), globalPosF(), angleDelta() и pixelDelta().
QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase)
Конструктор объекта события прокрутки.
pos указывает положение курсора мыши в окне. Положение в глобальных координатах задается параметром globalPos.
pixelDelta содержит расстояние прокрутки в пикселях на экране, а angleDelta — расстояние поворота колесика. pixelDelta является необязательным и может быть нулевым.
Состояния мыши и клавиатуры в момент события задаются параметрами buttons и modifiers.
Для обратной совместимости событие также может содержать данные однонаправленного события прокрутки: qt4Delta указывает поворот, а qt4Orientation — направление.
Фаза прокрутки задается параметром phase.
См. также posF(), globalPosF(), angleDelta(), pixelDelta() и phase().
QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, Qt::MouseEventSource source)
Конструктор объекта события прокрутки.
pos указывает положение курсора мыши в окне. Положение в глобальных координатах задается параметром globalPos.
pixelDelta содержит расстояние прокрутки в пикселях на экране, а angleDelta — расстояние поворота колесика. pixelDelta является необязательным и может быть нулевым.
Состояния мыши и клавиатуры в момент события задаются параметрами buttons и modifiers.
Для обратной совместимости событие также может содержать данные однонаправленного события прокрутки: qt4Delta указывает поворот, а qt4Orientation — направление.
Фаза прокрутки задается параметром phase.
Если событие wheel поступает от физического колесика мыши, source устанавливается в Qt::MouseEventNotSynthesized. Если оно поступает от жеста, распознанного операционной системой, или от устройства ввода без мыши, такое что pixelDelta напрямую связано с движением пальца, source устанавливается в Qt::MouseEventSynthesizedBySystem. Если оно поступает от Qt, source устанавливается в Qt::MouseEventSynthesizedByQt.
См. также posF(), globalPosF(), angleDelta(), pixelDelta() и phase().
QPoint QWheelEvent::angleDelta() const
Возвращает расстояние поворота колесика в восьмых градусах. Положительное значение указывает, что колесико поворачивалось вперёд от пользователя; отрицательное значение указывает, что колесико поворачивалось назад к пользователю.
Большинство типов мыши работают с шагом 15 градусов, в этом случае значение дельты является кратным 120; т.е., 120 единиц * 1/8 = 15 градусов.
Однако некоторые мыши имеют колесики с более высокой точностью и отправляют значения дельты, которые меньше 120 единиц (менее 15 градусов). Чтобы поддержать эту возможность, вы можете либо кумулятивно добавлять значения дельты из событий до достижения значения 120, а затем прокручивать виджет, либо вы можете частично прокручивать виджет в ответ на каждое событие wheel.
Пример:
void MyWidget::wheelEvent(QWheelEvent *event)
{
QPoint numPixels = event->pixelDelta();
QPoint numDegrees = event->angleDelta() / 8;
if (!numPixels.isNull()) {
scrollWithPixels(numPixels);
} else if (!numDegrees.isNull()) {
QPoint numSteps = numDegrees / 15;
scrollWithDegrees(numSteps);
}
event->accept();
} Примечание: На платформах, которые поддерживают фазы прокрутки phase, дельта может быть нулевой, когда:
- прокрутка только что началась, но расстояние ещё не изменилось (Qt::ScrollBegin),
- или прокрутка завершилась и расстояние больше не изменилось (Qt::ScrollEnd).
Qt::MouseButtons QWheelEvent::buttons() const
Возвращает состояние мыши во время возникновения события.
QPoint QWheelEvent::globalPos() const
Возвращает глобальную позицию указателя мыши в момент события. Это важно на асинхронных системных платформах, таких как X11; каждый раз, когда вы перемещаете виджеты в ответ на события мыши, globalPos() может значительно отличаться от текущей позиции курсора, возвращаемой QCursor::pos().
См. также globalX() и globalY().
const QPointF &QWheelEvent::globalPosF() const
Возвращает глобальную позицию указателя мыши в момент события. Это важно на асинхронных системных платформах, таких как X11; каждый раз, когда вы перемещаете виджеты в ответ на события мыши, globalPosF() может значительно отличаться от текущей позиции курсора, возвращаемой QCursor::pos().
См. также posF().
int QWheelEvent::globalX() const
Возвращает глобальную x-позицию курсора мыши в момент события.
См. также globalY() и globalPos().
int QWheelEvent::globalY() const
Возвращает глобальную y-позицию курсора мыши в момент события.
См. также globalX() и globalPos().
Qt::ScrollPhase QWheelEvent::phase() const
Возвращает фазу прокрутки этого события wheel.
Примечание: Фазы Qt::ScrollBegin и Qt::ScrollEnd в настоящее время поддерживаются только на macOS.
Эта функция была добавлена в Qt 5.2.
QPoint QWheelEvent::pixelDelta() const
Возвращает расстояние прокрутки в пикселях на экране. Это значение предоставляется на платформах, которые поддерживают значения дельты на основе пикселей высокой точности, таких как macOS. Значение должно использоваться непосредственно для прокрутки содержимого на экране.
Пример:
void MyWidget::wheelEvent(QWheelEvent *event)
{
QPoint numPixels = event->pixelDelta();
QPoint numDegrees = event->angleDelta() / 8;
if (!numPixels.isNull()) {
scrollWithPixels(numPixels);
} else if (!numDegrees.isNull()) {
QPoint numSteps = numDegrees / 15;
scrollWithDegrees(numSteps);
}
event->accept();
} Примечание: На платформах, которые поддерживают фазы прокрутки phase, дельта может быть нулевой, когда:
- прокрутка только что началась, но расстояние ещё не изменилось (Qt::ScrollBegin),
- или прокрутка завершилась и расстояние больше не изменилось (Qt::ScrollEnd).
QPoint QWheelEvent::pos() const
Возвращает позицию курсора мыши относительно виджета, который получил событие.
Если вы перемещаете виджеты в ответ на события мыши, используйте globalPos() вместо этой функции.
См. также x(), y() и globalPos().
const QPointF &QWheelEvent::posF() const
Возвращает позицию курсора мыши относительно виджета, который получил событие.
Если вы перемещаете виджеты в ответ на события мыши, используйте globalPosF() вместо этой функции.
См. также globalPosF().
Qt::MouseEventSource QWheelEvent::source() const
Возвращает информацию об источнике события wheel.
Источник можно использовать для различения событий, поступающих от мыши с физическим колесиком, и событий, генерируемых другими средствами, например, жестом поворота на сенсорной панели.
Примечание: Многие платформы не предоставляют такую информацию. На таких платформах всегда возвращается Qt::MouseEventNotSynthesized.
Эта функция была добавлена в Qt 5.5.
См. также Qt::MouseEventSource.
int QWheelEvent::x() const
Возвращает x-позицию курсора мыши относительно виджета, который получил событие.
int QWheelEvent::y() const
Возвращает y-позицию курсора мыши относительно виджета, который получил событие.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qwheelevent.html