Spec-Zone.ru › Qt 5.9

Класс QTabletEvent

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

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

Типы публичного доступа

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

Функции публичного доступа

QTabletEvent(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
TabletDevice device() const
QPoint globalPos() const
const QPointF & globalPosF() const
int globalX() const
int globalY() const
(deprecated) const QPointF & hiResGlobalPos() const
qreal hiResGlobalX() const
qreal hiResGlobalY() const
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
  • 2 public functions inherited from QInputEvent
  • 6 public functions inherited from QEvent

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QEvent
  • 1 статический public член, унаследованный от QEvent

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

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

События планшета генерируются периферийными устройствами планшета, такими как планшеты 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 Резинка (широкий конец пера).
END_OF_DOCUMENT_MARKER

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

enum 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(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 поддерживают вращение. Если устройство не поддерживает вращение, передайте 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 с использованием оператора ИЛИ. Для событий TabletMove это все нажатые кнопки. Для событий TabletPress это включает кнопку, вызвавшую событие. Для событий TabletRelease это исключает кнопку, вызвавшую событие.

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

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 устройства планшетного компьютера.

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. Если устройство не поддерживает вращение, это значение всегда равно 0.0.

qreal QTabletEvent::tangentialPressure() const

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

END_OF_DOCUMENT_MARKER

См. также 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.9/qtabletevent.html

Spec-Zone.ru

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