Spec-Zone.ru › Qt 5.13

Класс QWheelEvent

Класс QWheelEvent содержит параметры, описывающие событие прокрутки колесика. Подробнее...

Заголовок: #include <QWheelEvent>
qmake: QT += gui
Наследуется от: QInputEvent
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Открытые функции

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)
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(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)
QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
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

Подробное описание

События прокрутки колесика отправляются виджету под курсором мыши, но если этот виджет не обрабатывает событие, они отправляются виджету, имеющему фокус. События прокрутки колесика генерируются как для колесика мыши, так и для жестов прокрутки трекпада. Существует два способа чтения дельты события прокрутки: angleDelta() возвращает дельту в градусах поворота колесика. Это значение всегда предоставляется. pixelDelta() возвращает дельту в пикселях экрана и доступна на платформах с высокоточными трекпадами, такими как macOS. В этом случае source() вернёт Qt::MouseEventSynthesizedBySystem.

Функции pos() и globalPos() возвращают положение курсора мыши в момент события.

Событие прокрутки содержит специальный флаг подтверждения, указывающий, хочет ли получатель это событие. Вы должны вызвать ignore(), если вы не обрабатываете событие прокрутки; это гарантирует, что оно будет отправлено родительскому виджету.

Функция QWidget::setEnabled() может использоваться для включения или выключения событий мыши и клавиатуры для виджета.

Обработчик событий QWidget::wheelEvent() получает события прокрутки колесика.

См. также QMouseEvent и QWidget::grabMouse().

Документация по функциям-членам

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

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.

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

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

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

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)

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

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

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

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

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

Свойство phase() инициализируется значением Qt::ScrollUpdate. Используйте другой конструктор, чтобы явно указать фазу.

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

QPoint QWheelEvent::angleDelta() const

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

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

Однако некоторые мыши имеют колёса с более высокой разрешающей способностью и отправляют значения delta, которые меньше 120 единиц (меньше 15 градусов). Для поддержки этой возможности вы можете либо кумулятивно добавлять значения delta от событий до достижения значения 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, delta может быть null в следующих случаях:

  • когда прокрутка вот-вот начнется, но расстояние ещё не изменилось (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

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

Примечание: В 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.13/qwheelevent.html

Spec-Zone.ru

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