Spec-Zone.ru › Qt

Класс QTabletEvent

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

Заголовок: #include <QTabletEvent>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Наследует: QSinglePointEvent
  • Список всех членов, включая унаследованные
  • Устаревшие члены

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

QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons)
qreal pressure() const
qreal rotation() const
qreal tangentialPressure() const
qreal xTilt() const
qreal yTilt() const
qreal z() const

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

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

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

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

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

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

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

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

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

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

Поддержка планшетов в настоящее время требует установки драйвера WACOM windows, предоставляющего DLL wintab32.dll.

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

QTabletEvent::QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons)

Конструктор события планшета заданного типа type.

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

pressure задаёт давление, оказываемое на устройство dev.

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

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

Параметр z задаёт Z-координату устройства на планшете; это обычно задаётся колесом на 4D-мыши. Если устройство не поддерживает Z-ось (т. е. QPointingDevice::capabilities() не включает ZPosition), передайте 0 сюда.

Параметр tangentialPressure задаёт значение поводка касательного давления от аэрографа. Если устройство не поддерживает касательное давление (т. е. QPointingDevice::capabilities() не включает TangentialPressure), передайте 0 сюда.

rotation задаёт угол поворота устройства в градусах. 4D-мыши, планшетный перо Wacom Art Pen и Apple Pencil поддерживают поворот. Если устройство не поддерживает поворот (т. е. QPointingDevice::capabilities() не включает Rotation), передайте 0 сюда.

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

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

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

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

qreal QTabletEvent::xTilt() const

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

Примечание: Значение хранится как число с одинарной точностью.

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

qreal QTabletEvent::yTilt() const

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

Примечание: Значение хранится как число с одинарной точностью.

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

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

Spec-Zone.ru

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