Класс 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 |
| Наследует: |
Типы публичного доступа
| флаги | Возможности |
| перечисление | Возможность { 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