Класс 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 |
| Наследуется от: |
Типы публичного доступа
| флаги | Возможности |
| перечисление | Возможность { Нет, Позиция, Область, Давление, Скорость, …, Все } |
| перечисление | ТипУстройства { Неизвестно, Мышь, СенсорныйЭкран, Трекпад, Ручка, …, ВсеУстройства } |
| флаги | ТипыУстройств |
Публичные функции
| QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr) | |
| QInputDevice(QObject *parent = nullptr) | |
| QRect | доступнаяВиртуальнаяГеометрия() const |
| QInputDevice::Возможности | возможности() const |
| bool | имеетВозможность(QInputDevice::Возможность capability) const |
| QString | имя() const |
| QString | имяСиденья() const |
| qint64 | идентификаторСистемы() const |
| QInputDevice::ТипУстройства | тип() 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() возвращает допустимый вектор. |
Тип Возможности — псевдоним для QFlags<Возможность>. Он хранит логическое ИЛИ сочетание значений Возможность.
перечисление QInputDevice::ТипУстройствафлаги QInputDevice::ТипыУстройств
Это перечисление представляет тип устройства, которое сгенерировало QPointerEvent.
| Константа | Значение | Описание |
|---|---|---|
QInputDevice::DeviceType::Unknown |
0x0000 |
Устройство не может быть идентифицировано. |
QInputDevice::DeviceType::Mouse |
0x0001 |
Мышь. |
QInputDevice::DeviceType::TouchScreen |
0x0002 |
В этом типе устройства сенсорная поверхность и дисплей интегрированы. Это означает, что поверхность и дисплей обычно имеют одинаковый размер, так что существует прямая связь между физическими положениями точек касания и координатами, сообщаемыми QEventPoint. В результате Qt позволяет пользователю взаимодействовать одновременно с несколькими QWidgets, QGraphicsItems или Qt Quick Items. |
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 — это псевдоним для 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.0/qinputdevice.html