Класс 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 открытых функции унаследованы от QInputEvent
- 6 открытых функций унаследованы от QEvent
Дополнительные унаследованные члены
Подробное описание
Класс QTabletEvent содержит параметры, описывающие событие планшета.
События планшета генерируются периферийными устройствами планшета, такими как планшеты Wacom и другие бренды, а также электромагнитные стилусы, включенные в некоторые типы планшетных компьютеров. (Это не то же самое, что QTouchEvent, которое генерирует сенсорный экран, даже если пассивный стилус используется на сенсорном экране.)
События планшета похожи на события мыши; например, методы x(), y(), pos(), globalX(), globalY() и globalPos() предоставляют позицию курсора, и вы можете увидеть, какие buttons() нажаты (нажатие наконечника стилуса на поверхность планшета эквивалентно нажатию левой кнопки мыши). Но события планшета также передают некоторую дополнительную информацию, предоставляемую драйвером устройства планшета; например, вы можете захотеть выполнить рендеринг с субпиксельной точностью с координатами более высокого разрешения (hiResGlobalX() и hiResGlobalY()), настроить яркость цвета на основе pressure() инструмента на поверхности планшета, использовать разные кисти в зависимости от типа используемого инструмента (device()), изменять форму кисти каким-либо образом в соответствии с наклоном инструмента по осям 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, будет только одно устройство, и приложения могут не различать стилус и резинку.
Документация по типам членов
Перечисление 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(Тип 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 поддерживают поворот. Если устройство не поддерживает поворот, передайте 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
Возвращает кнопку, вызвавшую событие.
Обратите внимание, что для событий TabletMove, TabletEnterProximity и TabletLeaveProximity возвращаемое значение всегда Qt::NoButton.
См. также 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.
См. также 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/archives/qt-5.6/qtabletevent.html