Spec-Zone.ru › Qt 6.1

Класс QTabletEvent

Класс QTabletEvent содержит параметры, описывающие событие планшетного устройства. Подробнее...

Заголовок: #include <QTabletEvent>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Наследует: QSinglePointEvent
  • Список всех членов, включая унаследованные

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

QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons)
QPoint globalPos() const
const QPointF globalPosF() const
int globalX() const
int globalY() const
QPoint pos() const
const QPointF posF() const
qreal pressure() const
qreal rotation() const
qreal tangentialPressure() const
qint64 uniqueId() const
int x() const
qreal xTilt() const
int y() const
qreal yTilt() const
qreal z() const

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

События планшетных устройств генерируются периферийными устройствами планшетных компьютеров, такими как планшеты Wacom, и другими брендами, а также электромагнитными стилусами, включёнными в некоторых моделях планшетных компьютеров. (Это не то же самое, что QTouchEvent, которое генерируется сенсорным экраном, даже если на сенсорном экране используется пассивный стилус.)

События планшетных устройств похожи на события мыши; например, методы x(), y(), pos(), globalX(), globalY() и globalPos() предоставляют положение курсора, и вы можете определить, какие кнопки() нажаты (нажатие наконечника стилуса на поверхность планшетного устройства эквивалентно нажатию левой кнопки мыши). Но события планшетных устройств также передают дополнительную информацию, предоставляемую драйвером устройства планшетного компьютера; например, вы можете выполнить подпиксельную отрисовку с координатами с более высоким разрешением (globalPosF()), отрегулировать яркость цвета на основе давления() инструмента на поверхность планшетного устройства, использовать разные кисти в зависимости от типа используемого инструмента (deviceType()), каким-либо образом модулировать форму кисти в зависимости от угла наклона инструмента относительно поверхности планшетного устройства по осям X и Y (xTilt() и yTilt()), и использовать виртуальную резинку вместо кисти, если пользователь переключается на другой конец двухстороннего стилуса (pointerType()).

Каждое событие содержит флаг подтверждения, который указывает, хочет ли получатель обработку события. Вы должны вызвать QTabletEvent::accept(), если вы обрабатываете событие планшетного устройства; в противном случае оно будет отправлено родительскому виджету. Исключение составляют события TabletEnterProximity и TabletLeaveProximity: они отправляются только в QApplication и не проверяют, приняты они или нет.

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

Обработчик событий QWidget::tabletEvent() получает события TabletPress, TabletRelease и TabletMove. Qt сначала отправит событие планшетного устройства, а затем, если оно не будет принято ни одним виджетом, отправит событие мыши. Это позволяет пользователям приложений, которые не предназначены для планшетных компьютеров, использовать планшетный компьютер как мышь. Однако приложения для рисования с высоким разрешением должны обрабатывать события планшетных устройств, поскольку они могут возникать с большей частотой, что является преимуществом для плавного и точного рисования. Если события планшетного устройства отклоняются, синтетические события мыши могут быть сжаты для повышения эффективности.

Обратите внимание, что нажатие кнопки стилуса, когда стилус наведён на планшет, сгенерирует нажатие кнопки на некоторых типах планшетов, в то время как на других типах планшетов необходимо нажать стилус на поверхность планшета для регистрации одновременного нажатия кнопки стилуса.

Примечания для пользователей X11

Если планшет настроен в xorg.conf для использования драйвера Wacom, для стилуса, резинки и (при необходимости) курсора и сенсорной панели будут отдельные устройства XInput. Qt распознаёт их по их именам. В противном случае, если планшет настроен для использования драйвера evdev, будет только одно устройство, и приложения могут не быть способны отличить стилус от резинки.

Примечания для пользователей Windows

Поддержка планшетных устройств в настоящее время требует установки драйвера WACOM для Windows, предоставляющего DLL wintab32.dll.

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

QTabletEvent::QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons)

Создаёт событие планшетного устройства заданного типа type.

Параметр pos указывает, где произошло событие в виджете; globalPos — соответствующее положение в абсолютных координатах.

pressure задаёт давление, приложенное к устройству dev.

xTilt и yTilt задают угол наклона устройства относительно осей x и y соответственно.

keyState определяет нажатые модификаторы клавиатуры (например, Ctrl).

Параметр z задаёт Z-координату устройства на планшете; обычно это задаётся колесом на 4D-мыши. Если устройство не поддерживает Z-ось (т.е. QPointingDevice::capabilities() не включает ZPosition), передайте 0.

Параметр tangentialPressure задаёт значение поворотного колеса от аэрографа. Если устройство не поддерживает касательное давление (т.е. QPointingDevice::capabilities() не включает TangentialPressure), передайте 0.

rotation задаёт угол поворота устройства в градусах. 4D-мыши, стилус Wacom Art Pen и Apple Pencil поддерживают поворот. Если устройство не поддерживает поворот (т.е. QPointingDevice::capabilities() не включает Rotation), передайте 0.

Кнопка button, вызвавшая событие, задаётся значением из перечисления Qt::MouseButton. Если тип события type не является TabletPress или TabletRelease, соответствующая кнопка для этого события — Qt::NoButton.

buttons — состояние всех кнопок в момент события.

См. также pos(), globalPos(), device(), pressure(), xTilt(), yTilt(), uniqueId(), rotation(), tangentialPressure(), и z().

QPoint QTabletEvent::globalPos() const

Возвращает глобальное положение устройства в момент события. Это важно в асинхронных системных средах, таких как X11; всякий раз, когда вы перемещаете свои виджеты в ответ на события мыши, globalPos() может значительно отличаться от текущего положения QCursor::pos().

См. также globalX() и globalY().

const QPointF QTabletEvent::globalPosF() const

Возвращает глобальное положение устройства в момент события. Это важно в асинхронных системных средах, таких как X11; всякий раз, когда вы перемещаете свои виджеты в ответ на события мыши, globalPosF() может значительно отличаться от текущего положения QCursor::pos().

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

int QTabletEvent::globalX() const

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

См. также globalY() и globalPos().

int QTabletEvent::globalY() const

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

См. также globalX() и globalPos().

QPoint QTabletEvent::pos() const

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

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

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

const QPointF QTabletEvent::posF() const

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

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

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

qreal QTabletEvent::pressure() const

Возвращает значение давления для устройства. 0.0 указывает, что стилус не находится на планшете, 1.0 указывает максимальное значение давления для стилуса.

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

qreal QTabletEvent::rotation() const

Возвращает угол поворота текущего инструмента в градусах, где ноль означает, что наконечник стилуса направлен к верхней части планшета, положительное значение означает, что он повернут вправо, а отрицательное — влево. Это может быть предоставлено 4D-мышкой или стилусом с возможностью поворота (например, Wacom Art Pen или Apple Pencil). Если устройство не поддерживает поворот, это значение всегда равно 0,0.

qreal QTabletEvent::tangentialPressure() const

Возвращает тангенциальное давление для устройства. Обычно это предоставляет колесо на инструменте типа аэрографического маркера. Диапазон от -1,0 до 1,0. 0,0 указывает нейтральное положение. Современные аэрографы могут перемещаться только в положительном направлении от нейтральной позиции. Если устройство не поддерживает тангенциальное давление, это значение всегда равно 0,0.

Примечание: Значение хранится как число с плавающей запятой одинарной точности.

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

qint64 QTabletEvent::uniqueId() const

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

Поддержка этой функции зависит от планшета.

Значения для одного и того же устройства могут отличаться в зависимости от ОС.

Более поздние версии драйвера Wacom для Linux теперь будут сообщать информацию об идентификаторе. Если у вас есть планшет, поддерживающий уникальный идентификатор, и вы не получаете эту информацию в Linux, рассмотрите обновление драйвера.

Начиная с Qt 4.2, уникальный идентификатор одинаков независимо от ориентации пера. Более ранние версии сообщали различное значение при использовании наконечника ластика или наконечника пера на некоторых ОС.

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

int QTabletEvent::x() const

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

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

qreal QTabletEvent::xTilt() const

Возвращает угол между устройством (например, пером) и перпендикуляром в направлении оси x. Положительные значения — в сторону физической правой части планшета. Угол находится в диапазоне от -60 до +60 градусов.

Примечание: Значение хранится как число с плавающей запятой одинарной точности.

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

int QTabletEvent::y() const

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

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

qreal QTabletEvent::yTilt() const

Возвращает угол между устройством (например, пером) и перпендикуляром в направлении оси y. Положительные значения — в сторону нижней части планшета. Угол находится в диапазоне от -60 до +60 градусов.

Примечание: Значение хранится как число с плавающей запятой одинарной точности.

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

qreal QTabletEvent::z() const

Возвращает z-координату устройства. Обычно это представляется колесом на 4D-мыши. Если устройство не поддерживает ось Z, это значение всегда равно нулю. Это не то же самое, что и давление.

Примечание: Значение хранится как число с плавающей запятой одинарной точности.

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

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

Spec-Zone.ru

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