Spec-Zone.ru › Qt 6.0

Класс 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

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

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

флаги Возможности
перечисление Возможность { Нет, Позиция, Область, Давление, Скорость, …, Все }
перечисление ТипУстройства { Неизвестно, Мышь, СенсорныйЭкран, Трекпад, Ручка, …, ВсеУстройства }
флаги ТипыУстройств

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

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

Spec-Zone.ru

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