Spec-Zone.ru › Qt

Класс 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 система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

Spec-Zone.ru

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