Класс 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
Дополнительные унаследованные члены
Подробное описание
Класс 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 |
Резинка (широкий конец пера). |
См. также 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 устройства относительно виджета, получившего событие.
int QTabletEvent::xTilt() const
Возвращает угол между устройством (например, пером) и перпендикуляром по направлению оси x. Положительные значения соответствуют направлению физического правого края планшета. Угол находится в диапазоне от -60 до +60 градусов.
См. также yTilt().
int QTabletEvent::y() const
Возвращает положение y устройства относительно виджета, получившего событие.
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