Класс 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 | системаID() const |
| QInputDevice::ТипУстройства | тип() const |
Сигналы
| void | измениласьДоступнаяВиртуальнаяГеометрия(QRect area) |
Статические публичные члены
| QList<const QInputDevice *> | устройства() |
| const QInputDevice * | главнаяКлавиатура(const QString &seatName = QString()) |
Подробное описание
Каждое событие QInputEvent содержит указатель QInputDevice, чтобы получить доступ к свойствам устройства, таким как тип, возможности и местоположение. Ответственность за обнаружение, создание и регистрацию экземпляра этого класса, соответствующего каждому доступному устройству ввода, лежит на платформе или общих плагинах, с помощью QWindowSystemInterface::registerInputDevice(), перед генерацией любого события ввода, ссылающегося на это устройство.
Приложениям не нужно создавать экземпляры этого класса, но они могут считывать экземпляры, на которые указывают QInputEvent::device() и QInputDevice::devices().
Документация по типам членов
[since 6.2] перечисление QInputDevice::Возможностьфлаги QInputDevice::Возможности
Указывает, какой вид информации может предоставить устройство ввода или его драйвер.
| Константа | Значение | Описание |
|---|---|---|
QInputDevice::Capability::None |
0 |
Нет информации о возможностях устройства ввода. |
QInputDevice::Capability::Position |
0x0001 |
Указывает, что доступна информация о позиции, что означает, что функции позиционирования в точках касания возвращают допустимые точки. |
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::PixelScroll |
0x0080 |
Указывает, что устройство (обычно сенсорная площадка) прокручивается с точностью в пикселях. |
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 |
Это перечисление было введено или изменено в Qt 6.2.
Тип Возможности является псевдонимом для QFlags<Возможность>. Он хранит комбинацию значений Возможность с помощью операции OR.
перечисление QInputDevice::ТипУстройствафлаги QInputDevice::ТипыУстройств
Это перечисление представляет тип устройства, сгенерировавшего QPointerEvent.
END_OF_DOCUMENT_MARKER| Константа | Значение | Описание |
|---|---|---|
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 является псевдонимом для 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; в то время как мышь может, вероятно, получить доступ ко всем экранам виртуального рабочего стола. Графический планшет Wacom может быть настроен таким образом, чтобы он отображался на всех экранах или только на экране, где пользователь предпочитает создавать рисунки, или в окне, в котором происходит рисование. Устройство стилуса, интегрированное с сенсорным экраном, может быть физически ограничено этим экраном.
Если возвращаемый прямоугольник равен null, это означает, что это устройство может получить доступ ко всему виртуальному рабочему столу.
Примечание: Функция-геттер для свойства availableVirtualGeometry.
QInputDevice::Capabilities QInputDevice::capabilities() const
Возвращает возможности устройства.
Примечание: Функция-геттер для свойства capabilities.
[static] QList<const QInputDevice *> QInputDevice::devices()
Возвращает список всех зарегистрированных устройств ввода (клавиатуры и указывающие устройства).
Примечание: Возвращаемый список нельзя использовать для добавления новых устройств. Чтобы добавить имитируемый сенсорный экран для автотеста, можно использовать QTest::createTouchDevice(). Плагины платформы должны вызывать QWindowSystemInterface::registerInputDevice(), чтобы добавлять устройства по мере их обнаружения.
bool QInputDevice::hasCapability(QInputDevice::Capability capability) const
Возвращает значение true, если возможности устройства включают заданную capability, иначе false.
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.2/qinputdevice.html