Spec-Zone.ru › Qt 6.1

Класс QInputDevice

Класс QInputDevice описывает устройство, являющееся источником QInputEvent. Подробнее...

Заголовок: #include <QInputDevice>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
С момента: Qt 6.0
Наследуется от: QObject
Наследует:

QPointingDevice

  • Список всех членов, включая унаследованные

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

флаги Возможности
перечисление Возможность { None, Position, Area, Pressure, Velocity, …, All }
перечисление Тип устройства { Unknown, Mouse, TouchScreen, TouchPad, Stylus, …, AllDevices }
флаги Типы устройств

Публичные функции

QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr)
QInputDevice(QObject *parent = nullptr)
QRect доступнаяВиртуальнаяГеометрия() const
QInputDevice::Capabilities возможности() const
bool имеетВозможность(QInputDevice::Capability capability) const
QString название() const
QString имяРаздела() const
qint64 системныйИдентификатор() const
QInputDevice::DeviceType тип() const

Сигналы

void доступнаяВиртуальнаяГеометрияИзменилась(QRect area)

Статические публичные члены

QList<const QInputDevice *> устройства()
const QInputDevice * главнаяКлавиатура(const QString &seatName = QString())

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

Каждый QInputEvent содержит указатель QInputDevice, позволяющий получить доступ к свойствам устройства, таким как тип, возможности и раздел. От платформы или общих плагинов требуется обнаружить, создать и зарегистрировать экземпляр этого класса, соответствующий каждому доступному устройству ввода, с помощью QWindowSystemInterface::registerInputDevice(), перед созданием любого события ввода, относящегося к этому устройству.

Приложениям не нужно создавать экземпляры этого класса, но они могут получить доступ к экземплярам, на которые указывают QInputEvent::device() и QInputDevice::devices().

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

перечисление QInputDevice::Возможностьфлаги QInputDevice::Возможности

Указывает, какой вид информации может предоставить устройство ввода или его драйвер.

Константа Значение Описание
QInputDevice::Capability::None 0 Нет доступной информации о возможностях устройства ввода.
QInputDevice::Capability::Position 0x0001 Указывает, что доступна информация о позиции, что означает, что функции семейства position() в точках касания возвращают корректные координаты.
QInputDevice::Capability::Area 0x0002 Указывает, что доступна информация о площади касания, что означает, что QEventPoint::ellipseDiameters() в точках касания возвращают корректные значения.
QInputDevice::Capability::Pressure 0x0004 Указывает, что доступна информация о давлении, что означает, что QEventPoint::pressure() возвращает корректное значение.
QInputDevice::Capability::Velocity 0x0008 Указывает, что доступна информация о скорости, что означает, что QEventPoint::velocity() возвращает корректный вектор.
QInputDevice::Capability::NormalizedPosition 0x0020 Указывает, что доступна информация о нормализованной позиции, что означает, что QEventPoint::globalPosition() возвращает корректное значение.
QInputDevice::Capability::MouseEmulation 0x0040 Указывает, что устройство синтезирует события мыши.
QInputDevice::Capability::Scroll 0x0100 Указывает, что устройство имеет возможность прокрутки.
QInputDevice::Capability::Hover 0x0200 Указывает, что устройство имеет возможность наведения курсора.
QInputDevice::Capability::Rotation 0x0400 Указывает, что доступна информация о повороте.
QInputDevice::Capability::XTilt 0x0800 Указывает, что доступна информация о наклоне по оси X.
QInputDevice::Capability::YTilt 0x1000 Указывает, что доступна информация о наклоне по оси Y.
QInputDevice::Capability::TangentialPressure 0x2000 Указывает, что доступна информация о тангенциальном давлении.
QInputDevice::Capability::ZPosition 0x4000 Указывает, что доступна информация о позиции по оси Z.
QInputDevice::Capability::All 0x7FFFFFFF

Тип Capabilities является псевдонимом для QFlags<Capability>. Он хранит логическое ИЛИ комбинацию значений Capability.

перечисление QInputDevice::Тип устройствафлаги QInputDevice::Типы устройств

Это перечисление представляет тип устройства, которое сгенерировало QPointerEvent.

Постоянная Значение Описание
QInputDevice::DeviceType::Unknown 0x0000 Устройство не может быть идентифицировано.
QInputDevice::DeviceType::Mouse 0x0001 Мышь.
QInputDevice::DeviceType::TouchScreen 0x0002 В этом типе устройства сенсорная поверхность и дисплей объединены. Это означает, что поверхность и дисплей, как правило, имеют одинаковый размер, так что существует прямая связь между физическими позициями точек касания и координатами, отдаваемыми QEventPoint. В результате Qt позволяет пользователю взаимодействовать напрямую с несколькими QWidgets, QGraphicsItems или элементами Qt Quick одновременно.
QInputDevice::DeviceType::TouchPad 0x0004 В этом типе устройства сенсорная поверхность отделена от дисплея. Нет прямой связи между физическим местоположением касания и координатами на экране. Вместо этого они рассчитываются относительно текущей позиции мыши, и пользователь должен использовать сенсорную панель для перемещения этой точки отсчета. В отличие от сенсорных экранов, Qt позволяет пользователям взаимодействовать только с одним QWidget или QGraphicsItem за раз.
QInputDevice::DeviceType::Stylus 0x0010 Устройство похожее на ручку, используемое на графическом планшете, таком как планшет Wacom, или на сенсорном экране, который предоставляет отдельную возможность распознавания стилуса.
QInputDevice::DeviceType::Airbrush 0x0020 Стилус с колесиком для регулировки tangentialPressure.
QInputDevice::DeviceType::Puck 0x0008 Устройство, аналогичное плоской мыши с прозрачным кругом с перекрестьем.
QInputDevice::DeviceType::Keyboard 0x1000 Клавиатура.
QInputDevice::DeviceType::AllDevices 0x7FFFFFFF Любое из вышеперечисленных (используется в качестве значения фильтра по умолчанию).

Тип DeviceTypes — это typedef для QFlags<DeviceType>. Он хранит логическое ИЛИ сочетание значений DeviceType.

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

QInputDevice::QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr)

Создает новый экземпляр устройства ввода. Указанное name обычно представляет собой имя модели, заданное производителем, если оно доступно, или что-то ещё, что можно идентифицировать; id — это платформа-специфическое число, которое будет уникальным для каждого устройства (например, идентификатор xinput в X11); type определяет тип устройства. В системах окон, которые могут обрабатывать ввод от нескольких пользователей или наборов устройств ввода одновременно (например, Wayland или X11), seatName идентифицирует имя набора устройств, которые будут использоваться вместе. Если устройство является дочерним или подчиненным устройством (например, одна из нескольких мышей, которые могут по очереди перемещать «главный указатель»), в качестве parent должно быть указано родительское устройство.

Плагин платформы создает, регистрирует и продолжает владеть каждым экземпляром устройства; обычно parent следует указывать для управления памятью, даже если для определенного устройства нет родительского устройства.

По умолчанию capabilities() равны None.

QInputDevice::QInputDevice(QObject *parent = nullptr)

Создает новый недействительный экземпляр устройства ввода как дочерний элемент parent.

QRect QInputDevice::availableVirtualGeometry() const

Возвращает область на виртуальном рабочем столе виртуального рабочего стола, к которой это устройство имеет доступ.

Например, устройство ввода TouchScreen фиксировано на одном физическом экране и обычно откалибровано таким образом, что эта область совпадает с QScreen::geometry; в то время как устройство ввода Mouse может, вероятно, получить доступ ко всем экранам виртуального рабочего стола. Графический планшет Wacom может быть настроен таким образом, чтобы он отображался на всех экранах или только на экране, на котором пользователь предпочитает создавать рисунки, или в окне, в котором происходит рисование. Устройство ввода Stylus, интегрированное с сенсорным экраном, может быть физически ограничено этим экраном.

Если возвращаемый прямоугольник пустой, это означает, что это устройство может получить доступ ко всему виртуальному рабочему столу.

Примечание: Функция-геттер для свойства availableVirtualGeometry.

QInputDevice::Capabilities QInputDevice::capabilities() const

Возвращает возможности устройства.

Примечание: Функция-геттер для свойства capabilities.

[static] QList<const QInputDevice *> QInputDevice::devices()

Возвращает список всех зарегистрированных устройств ввода (клавиатур и указательных устройств).

Примечание: Возвращаемый список не может быть использован для добавления новых устройств. Для добавления имитируемого сенсорного экрана для автотестирования можно использовать QTest::createTouchDevice(). Плагины платформы должны вызывать QWindowSystemInterface::registerInputDevice() для добавления устройств по мере их обнаружения.

bool QInputDevice::hasCapability(QInputDevice::Capability capability) const

Возвращает, содержит ли набор возможностей устройства заданную возможность capability.

QString QInputDevice::name() const

Возвращает имя устройства.

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

Примечание: Функция-геттер для свойства name.

[static] const QInputDevice *QInputDevice::primaryKeyboard(const QString &seatName = QString())

Возвращает основную или главную клавиатуру на заданном сиде seatName.

QString QInputDevice::seatName() const

Возвращает сид, к которому связано устройство, если известно; в противном случае пустую строку.

Устройства, которые предназначены для совместного использования одним пользователем, могут быть настроены так, чтобы иметь одинаковое имя сида. Это возможно только на платформах Wayland и X11 на данный момент.

Примечание: Функция-геттер для свойства seatName.

qint64 QInputDevice::systemId() const

Возвращает платформенно-специфический системный идентификатор (например, идентификатор xinput в платформе X11).

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

Примечание: Функция-геттер для свойства systemId.

QInputDevice::DeviceType QInputDevice::type() const

Возвращает тип устройства.

Примечание: Функция-геттер для свойства type.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qinputdevice.html

Spec-Zone.ru

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