Spec-Zone.ru › Qt 5.13

Класс 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 device() const
QPoint globalPos() const
const QPointF & globalPosF() const
int globalX() const
int globalY() const
const QPointF & hiResGlobalPos() const
qreal hiResGlobalX() const
qreal hiResGlobalY() 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() нажаты (нажатие наконечника стилуса на поверхность планшета эквивалентно нажатию левой кнопки мыши). Но события планшетного устройства также передают дополнительную информацию, которую предоставляет драйвер устройства планшетного ввода; например, вы можете выполнить рендеринг с субпиксельной точностью с использованием координат более высокой разрешающей способности (hiResGlobalX() и hiResGlobalY()), отрегулировать яркость цвета на основе pressure() инструмента на поверхности планшета, использовать разные кисти в зависимости от типа используемого инструмента (device()), каким-либо образом изменять форму кисти в соответствии с наклоном инструмента по осям X и Y относительно поверхности планшета (xTilt() и yTilt()), и использовать виртуальную резинку вместо кисти, если пользователь переключается на другой конец двустороннего стилуса (pointerType()).

Каждое событие содержит флаг accept, который указывает, хочет ли получатель это событие. Вы должны вызвать 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.

Кнопка, вызвавшая событие, задается значением из перечисления 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::device() const

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

См. также TabletDevice.

QPoint QTabletEvent::globalPos() const

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

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

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

const QPointF &QTabletEvent::hiResGlobalPos() const

Высокоточные координаты, полученные с планшетного устройства. Дробная часть QPointF содержит субпиксельную информацию.

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

qreal QTabletEvent::hiResGlobalX() const

Высокоточная x-координата планшетного устройства.

qreal QTabletEvent::hiResGlobalY() const

Высокоточная y-координата планшетного устройства.

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

Spec-Zone.ru

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