Spec-Zone.ru › Qt 6.0

Класс 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. Он содержится в более старых пакетах, например pentablet_5.3.5-3.exe.

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

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.0/qtabletevent.html

Spec-Zone.ru

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