Spec-Zone.ru › Qt 5.15

Класс QTabletEvent

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

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

Типы

Перечисление PointerType { UnknownPointer, Pen, Cursor, Eraser }
Перечисление TabletDevice { NoDevice, Puck, Stylus, Airbrush, FourDMouse, RotationStylus }

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

QTabletEvent(QEvent::Type type, const QPointF &pos, const QPointF &globalPos, int device, int pointerType, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, Qt::KeyboardModifiers keyState, qint64 uniqueID, Qt::MouseButton button, Qt::MouseButtons buttons)
Qt::MouseButton button() const
Qt::MouseButtons buttons() const
QTabletEvent::TabletDevice deviceType() const
QPoint globalPos() const
const QPointF & globalPosF() const
int globalX() const
int globalY() const
QTabletEvent::PointerType pointerType() const
QPoint pos() const
const QPointF & posF() const
qreal pressure() const
qreal rotation() const
qreal tangentialPressure() const
qint64 uniqueId() const
int x() const
int xTilt() const
int y() const
int yTilt() const
int z() const

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

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

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

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

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

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

Новое в Qt 5.4: QTabletEvent включает всю информацию, доступную от устройства, включая QTabletEvent::buttons(). Раньше нельзя было принять все события планшета и также узнать, какие кнопки стилуса были нажаты.

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

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

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

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

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

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

Перечисление QTabletEvent::PointerType

Это перечисление определяет тип точки, генерирующей событие.

Константа Значение Описание
QTabletEvent::UnknownPointer 0 Неизвестное устройство.
QTabletEvent::Pen 1 Конец наконечника устройства типа стилус (узкий конец пера).
QTabletEvent::Cursor 2 Любое устройство типа пук.
QTabletEvent::Eraser 3 Конец ластика устройства типа стилус (широкий конец пера).

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

Перечисление QTabletEvent::TabletDevice

Это перечисление определяет тип устройства, генерирующего событие.

Постоянная Значение Описание
QTabletEvent::NoDevice 0 Нет устройства или неизвестное устройство.
QTabletEvent::Puck 1 Планшет (устройство, похожее на плоскую мышь с прозрачным кругом с перекрестием).
QTabletEvent::Stylus 2 Стилус.
QTabletEvent::Airbrush 3 Аэрографическое устройство.
QTabletEvent::FourDMouse 4 Мышь 4D.
QTabletEvent::RotationStylus 6 Специальный стилус, который также учитывает вращение (6D стилус).

Этот перечисление был введён или изменён в Qt 4.1.

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

QTabletEvent::QTabletEvent(QEvent::Type type, const QPointF &pos, const QPointF &globalPos, int device, int pointerType, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, Qt::KeyboardModifiers keyState, qint64 uniqueID, Qt::MouseButton button, Qt::MouseButtons buttons)

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

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

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

pointerType описывает тип пера, которое используется.

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

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

Параметр uniqueID содержит уникальный идентификатор текущего устройства.

Параметр z содержит координату устройства на планшете, обычно задаваемую колесом мыши 4D. Если устройство не поддерживает ось Z, передайте ноль.

Параметр tangentialPressure содержит касательное давление аэрографа. Если устройство не поддерживает касательное давление, передайте 0.

rotation содержит угол поворота устройства в градусах. Мыши 4D, стилус Wacom Art Pen и Apple Pencil поддерживают вращение. Если устройство не поддерживает вращение, передайте 0.

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

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

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

Qt::MouseButton QTabletEvent::button() const

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

Обратите внимание, что возвращаемое значение всегда Qt::NoButton для событий TabletMove, TabletEnterProximity и TabletLeaveProximity.

См. также buttons() и Qt::MouseButton.

Qt::MouseButtons QTabletEvent::buttons() const

Возвращает состояние кнопок в момент генерации события. Состояние кнопок — это комбинация кнопок из перечисления Qt::MouseButton с использованием оператора OR. Для событий TabletMove это все нажатые кнопки. Для событий TabletPress это включает кнопку, которая вызвала событие. Для событий TabletRelease это исключает кнопку, которая вызвала событие.

См. также button() и Qt::MouseButton.

QTabletEvent::TabletDevice QTabletEvent::deviceType() const

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

См. также TabletDevice.

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(), и hiResGlobalX().

int QTabletEvent::globalY() const

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

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

QTabletEvent::PointerType QTabletEvent::pointerType() const

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

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

int QTabletEvent::xTilt() const

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

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

int QTabletEvent::y() const

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

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

int QTabletEvent::yTilt() const

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

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

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

Spec-Zone.ru

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