Spec-Zone.ru › Qt 5.12

Класс 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)
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, bool inverted)
QWheelEvent(QPointF pos, QPointF globalPos, QPoint pixelDelta, QPoint angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, bool inverted, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized)
QPoint angleDelta() const
Qt::MouseButtons buttons() const
QPoint globalPos() const
const QPointF & globalPosF() const
int globalX() const
int globalY() const
bool inverted() 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

Защищенные переменные

uint _unused_
QPoint angleD
QPointF g
bool invertedScrolling
Qt::MouseButtons mouseState
QPointF p
uint ph
QPoint pixelD
int qt4D
Qt::Orientation qt4O
int reserved
uint src

Дополнительные унаследованные члены

  • 1 свойство унаследовано от QEvent
  • 1 статический открытый член унаследован от 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.

Если событие прокрутки поступает с физического колёсика мыши, source устанавливается в Qt::MouseEventNotSynthesized. Если оно поступает от жеста, распознанного операционной системой, или от не-мышевого устройства ввода, pixelDelta непосредственно связан с движением пальца, source устанавливается в Qt::MouseEventSynthesizedBySystem. Если оно генерируется Qt, source устанавливается в Qt::MouseEventSynthesizedByQt.

См. также 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, bool inverted)

Создаёт объект события прокрутки.

pos указывает положение курсора мыши внутри окна. Положение в глобальных координатах задаётся параметром globalPos.

pixelDelta содержит расстояние прокрутки в пикселях на экране, а angleDelta — расстояние поворота колёсика. pixelDelta может быть нулевым.

Состояние мыши и клавиатуры в момент события задаются параметрами buttons и modifiers.

Для обеспечения обратной совместимости событие может также содержать данные о событии прокрутки в одном направлении: qt4Delta определяет поворот, а qt4Orientation — направление.

Фаза прокрутки события задаётся параметром phase.

Если событие прокрутки поступает с физического колёсика мыши, source устанавливается в Qt::MouseEventNotSynthesized. Если оно поступает от жеста, распознанного операционной системой, или от не-мышевого устройства ввода, pixelDelta непосредственно связан с движением пальца, source устанавливается в Qt::MouseEventSynthesizedBySystem. Если оно генерируется Qt, source устанавливается в Qt::MouseEventSynthesizedByQt.

См. также posF(), globalPosF(), angleDelta(), pixelDelta() и phase().

Если система настроена на инвертирование значений дельты, передаваемых с событием (например, при естественной прокрутке тачпада в OS X), inverted должен быть true. В противном случае, inverted равен false

См. также posF(), globalPosF(), angleDelta(), pixelDelta() и phase().

QWheelEvent::QWheelEvent(QPointF pos, QPointF globalPos, QPoint pixelDelta, QPoint angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, bool inverted, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized)

Создает объект события прокрутки.

pos указывает положение курсора мыши внутри окна. Положение в глобальных координатах задается параметром globalPos.

pixelDelta содержит расстояние прокрутки в пикселях на экране, а angleDelta — расстояние поворота колеса прокрутки. pixelDelta необязателен и может быть нулевым.

Состояние мыши и клавиатуры на момент события задаются параметрами buttons и modifiers.

Фаза прокрутки события задается параметром phase.

Если событие прокрутки исходит от физического колеса мыши, source устанавливается в Qt::MouseEventNotSynthesized. Если оно исходит от жеста, распознанного операционной системой, или от немышевого устройства ввода, такое, что pixelDelta напрямую связан с движением пальца, source устанавливается в Qt::MouseEventSynthesizedBySystem. Если оно исходит от Qt, source устанавливается в Qt::MouseEventSynthesizedByQt.

Если система настроена на инвертирование значений дельты, передаваемых с событием (например, при естественной прокрутке тачпада в macOS), inverted должен быть true. В противном случае, inverted равен false

См. также posF(), globalPosF(), angleDelta(), pixelDelta() и phase().

QPoint QWheelEvent::angleDelta() const

Возвращает расстояние поворота колеса в восьмых долях градуса. Положительное значение указывает, что колесо было повернуто вперёд от пользователя; отрицательное значение указывает, что колесо было повернуто назад к пользователю.

Большинство типов мышей работают с шагом 15 градусов, в этом случае значение дельты является кратным 120; т.е., 120 единиц * 1/8 = 15 градусов.

Однако некоторые мыши имеют колёса с более высоким разрешением и отправляют значения дельты, которые меньше 120 единиц (меньше 15 градусов). Чтобы поддержать эту возможность, можно либо кумулятивно суммировать значения дельты из событий до достижения значения 120, а затем выполнить прокрутку виджета, либо частично выполнить прокрутку виджета в ответ на каждое событие прокрутки.

Пример:

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().

bool QWheelEvent::inverted() const

Возвращает, инвертированы ли значения delta, переданные вместе с событием.

Обычно, вертикальное колесо создаст QWheelEvent с положительными значениями delta, если верхняя часть колеса вращается от руки, управляющей им. Аналогично, горизонтальное движение колеса создаст QWheelEvent с положительными значениями delta, если верхняя часть колеса перемещается влево.

Однако на некоторых платформах это настраивается таким образом, что те же операции, описанные выше, приведут к отрицательным значениям delta (но с той же величиной). С помощью свойства inverted потребитель событий колеса может всегда следовать направлению колеса, независимо от настроек системы, но только для определенных виджетов. (Один из таких случаев использования может заключаться в том, что пользователь вращает колесо в том же направлении, в котором вращается визуальный Tumbler. Другой случай использования заключается в том, чтобы ручка ползунка следила за направлением движения пальцев на сенсорной панели независимо от конфигурации системы.)

Примечание: Многие платформы не предоставляют такой информации. На таких платформах inverted всегда возвращает false.

Эта функция была добавлена в Qt 5.7.

Qt::ScrollPhase QWheelEvent::phase() const

Возвращает фазу прокрутки данного события колеса.

Примечание: Фазы Qt::ScrollBegin и Qt::ScrollEnd в настоящее время поддерживаются только на macOS.

Эта функция была добавлена в Qt 5.2.

QPoint QWheelEvent::pixelDelta() const

Возвращает расстояние прокрутки в пикселях на экране. Это значение предоставляется на платформах, которые поддерживают высокоразрешающие значения delta на основе пикселей, такие как 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, delta может быть null, когда:

  • прокрутка вот-вот начнется, но расстояние еще не изменилось (Qt::ScrollBegin),
  • или прокрутка завершилась, и расстояние больше не изменилось (Qt::ScrollEnd).

Примечание: В X11 это значение зависит от драйвера и ненадежно, используйте angleDelta() вместо этого.

QPoint QWheelEvent::pos() const

Возвращает позицию курсора мыши относительно виджета, получившего событие.

Если вы перемещаете свои виджеты в ответ на события мыши, используйте globalPos() вместо этой функции.

См. также x(), y() и globalPos().

const QPointF &QWheelEvent::posF() const

Возвращает положение курсора мыши относительно виджета, получившего событие.

Если вы перемещаете свои виджеты в ответ на события мыши, используйте globalPosF() вместо этой функции.

См. также globalPosF().

Qt::MouseEventSource QWheelEvent::source() const

Возвращает информацию о источнике события колеса.

Источник можно использовать для различения событий, поступающих от мыши с физическим колесом, и событий, сгенерированных другими способами, такими как жесты прокрутки на сенсорной панели.

Примечание: Многие платформы не предоставляют такой информации. На таких платформах всегда возвращается Qt::MouseEventNotSynthesized.

Эта функция была добавлена в Qt 5.5.

См. также Qt::MouseEventSource.

int QWheelEvent::x() const

Возвращает x-позицию курсора мыши относительно виджета, получившего событие.

См. также y() и pos().

int QWheelEvent::y() const

Возвращает y-позицию курсора мыши относительно виджета, получившего событие.

См. также x() и pos().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qwheelevent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API