En esta página

QInputDevice Class

La clase QInputDevice describe un dispositivo desde el que se origina un QInputEvent. Más...

Cabecera: #include <QInputDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Desde: Qt 6.0
Hereda de: QObject
Heredado por:

QPointingDevice

Tipos Públicos

flags Capabilities
enum class Capability { None, Position, Area, Pressure, Velocity, …, All }
enum class DeviceType { Unknown, Mouse, TouchScreen, TouchPad, Stylus, …, AllDevices }
flags DeviceTypes

Propiedades

Funciones públicas

QInputDevice(QObject *parent = nullptr)
QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr)
QRect availableVirtualGeometry() const
QInputDevice::Capabilities capabilities() const
bool hasCapability(QInputDevice::Capability capability) const
QString name() const
QString seatName() const
qint64 systemId() const
QInputDevice::DeviceType type() const

Señales

void availableVirtualGeometryChanged(QRect area)
void capabilitiesChanged(QInputDevice::Capabilities capabilities)

Miembros públicos estáticos

QList<const QInputDevice *> devices()
const QInputDevice *primaryKeyboard(const QString &seatName = QString())
(since 6.3) QStringList seatNames()

Descripción Detallada

Cada QInputEvent contiene un puntero QInputDevice para permitir el acceso a propiedades específicas del dispositivo como tipo, capacidades y asiento. Es responsabilidad de la plataforma o de los plug-ins genéricos descubrir, crear y registrar una instancia de esta clase correspondiente a cada dispositivo de entrada disponible, mediante QWindowSystemInterface::registerInputDevice(), antes de generar cualquier evento de entrada referido a ese dispositivo.

Las aplicaciones no necesitan instanciar esta clase, pero pueden leer las instancias apuntadas por QInputEvent::device() y QInputDevice::devices().

Documentación de tipos de miembros

enum class QInputDevice::Capability
flags QInputDevice::Capabilities

Indica qué tipo de información puede proporcionar el dispositivo de entrada o su controlador.

ConstanteValorDescripción
QInputDevice::Capability::None0No hay información disponible sobre las capacidades del dispositivo de entrada.
QInputDevice::Capability::Position0x0001Indica que la información de posición está disponible, lo que significa que la familia de funciones position() en los puntos táctiles devuelven puntos válidos.
QInputDevice::Capability::Area0x0002Indica que la información del área táctil está disponible, lo que significa que QEventPoint::ellipseDiameters() en los puntos táctiles devuelve valores válidos.
QInputDevice::Capability::Pressure0x0004Indica que se dispone de información sobre la presión, lo que significa que QEventPoint::pressure() devuelve un valor válido.
QInputDevice::Capability::Velocity0x0008Indica que se dispone de información sobre la velocidad, lo que significa que QEventPoint::velocity() devuelve un vector válido.
QInputDevice::Capability::NormalizedPosition0x0020Indica que la posición normalizada está disponible, lo que significa que QEventPoint::globalPosition() devuelve un valor válido.
QInputDevice::Capability::MouseEmulation0x0040Indica que el dispositivo sintetiza eventos de ratón.
QInputDevice::Capability::Scroll0x0100Indica que el dispositivo tiene capacidad de desplazamiento.
QInputDevice::Capability::PixelScroll (since Qt 6.2)0x0080Indica que el dispositivo (normalmente un touchpad) se desplaza con pixel precision.
QInputDevice::Capability::Hover0x0200Indica que el dispositivo tiene capacidad de hover.
QInputDevice::Capability::Rotation0x0400Indica que la información rotation está disponible.
QInputDevice::Capability::XTilt0x0800Indica que la información tilt está disponible para el eje X.
QInputDevice::Capability::YTilt0x1000Indica que la información tilt está disponible para el eje Y.
QInputDevice::Capability::TangentialPressure0x2000Indica que la información tangential pressure está disponible.
QInputDevice::Capability::ZPosition0x4000Indica que se dispone de información de posición para el Z-axis.
QInputDevice::Capability::All0x7FFFFFFF

El tipo Capabilities es un typedef para QFlags<Capability>. Almacena una combinación OR de valores Capability.

enum class QInputDevice::DeviceType
flags QInputDevice::DeviceTypes

Este enum representa el tipo de dispositivo que ha generado un QPointerEvent.

ConstanteValorDescripción
QInputDevice::DeviceType::Unknown0x0000No se puede identificar el dispositivo.
QInputDevice::DeviceType::Mouse0x0001Un ratón.
QInputDevice::DeviceType::TouchScreen0x0002En este tipo de dispositivo, la superficie táctil y la pantalla están integradas. Esto significa que la superficie y la pantalla suelen tener el mismo tamaño, de modo que existe una relación directa entre las posiciones físicas de los puntos táctiles y las coordenadas indicadas por QEventPoint. Como resultado, Qt permite al usuario interactuar directamente con múltiples QWidgets, QGraphicsItems o Qt Quick Items al mismo tiempo.
QInputDevice::DeviceType::TouchPad0x0004En este tipo de dispositivos, la superficie táctil está separada de la pantalla. No existe una relación directa entre la ubicación física del toque y las coordenadas en pantalla. En su lugar, se calculan en relación con la posición actual del ratón, y el usuario debe utilizar el panel táctil para mover este punto de referencia. A diferencia de las pantallas táctiles, Qt sólo permite a los usuarios interactuar con un único QWidget o QGraphicsItem a la vez.
QInputDevice::DeviceType::Stylus0x0010Un dispositivo similar a un lápiz que se utiliza en una tableta gráfica, como una tableta Wacom, o en una pantalla táctil que proporciona una capacidad de detección de stylus independiente.
QInputDevice::DeviceType::Airbrush0x0020Un lápiz óptico con una rueda selectora para ajustar tangentialPressure.
QInputDevice::DeviceType::Puck0x0008Un dispositivo similar a un ratón plano con un círculo transparente con cruces.
QInputDevice::DeviceType::Keyboard0x1000Un teclado.
QInputDevice::DeviceType::AllDevices0x7FFFFFFFCualquiera de los anteriores (utilizado como valor de filtro por defecto).

El tipo DeviceTypes es un typedef para QFlags<DeviceType>. Almacena una combinación OR de valores DeviceType.

Documentación de propiedades

[read-only] availableVirtualGeometry : QRect

Esta propiedad contiene la región dentro del escritorio virtual a la que puede acceder este dispositivo.

Por ejemplo, un dispositivo de entrada TouchScreen se fija en su lugar sobre una única pantalla física y suele calibrarse para que esta zona sea la misma que QScreen::geometry(), mientras que un Mouse suele poder acceder a todas las pantallas del escritorio virtual.

Alternativamente, una tableta gráfica Wacom puede configurarse de modo que se asigne a todas las pantallas, o sólo a la pantalla en la que el usuario prefiere crear dibujos, o sólo a la ventana en la que se dibuja.

Un dispositivo Stylus integrado con una pantalla táctil puede estar limitado físicamente a esa pantalla.

Si el rectángulo devuelto es null, significa que este dispositivo puede acceder a todo el escritorio virtual.

Funciones de acceso:

QRect availableVirtualGeometry() const

Señal de notificador:

void availableVirtualGeometryChanged(QRect area)

[read-only] capabilities : Capabilities

Esta propiedad contiene las capacidades del dispositivo.

Funciones de acceso:

QInputDevice::Capabilities capabilities() const

Señal del notificador:

void capabilitiesChanged(QInputDevice::Capabilities capabilities)

[read-only] name : const QString

Esta propiedad contiene el nombre del dispositivo.

Funciones de acceso:

QString name() const

[read-only] seatName : const QString

Esta propiedad contiene el asiento asociado al dispositivo.

Funciones de acceso:

QString seatName() const

[read-only] systemId : const qint64

Esta propiedad contiene el ID del sistema específico de la plataforma.

Funciones de acceso:

qint64 systemId() const

[read-only] type : const DeviceType

Esta propiedad contiene el tipo de dispositivo

Funciones de acceso:

QInputDevice::DeviceType type() const

Documentación de la función miembro

QInputDevice::QInputDevice(QObject *parent = nullptr)

Crea una nueva instancia de dispositivo de entrada no válido como hijo de parent.

QInputDevice::QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr)

Crea una nueva instancia de dispositivo de entrada. El name dado es normalmente un nombre de modelo asignado por el fabricante si está disponible, o algo más identificable; id es un número específico de la plataforma que será único por dispositivo (por ejemplo el ID de xinput en X11); type identifica qué tipo de dispositivo. En los sistemas de ventanas que son capaces de manejar la entrada de múltiples usuarios o conjuntos de dispositivos de entrada al mismo tiempo (como Wayland o X11), seatName identifica el nombre del conjunto de dispositivos que se utilizarán juntos. Si el dispositivo es un dispositivo hijo o esclavo (por ejemplo, uno de varios ratones que pueden turnarse para mover el "puntero del núcleo"), el dispositivo maestro debe indicarse como parent.

El complemento de la plataforma crea, registra y sigue siendo propietario de cada instancia de dispositivo; por lo general, parent debe indicarse con fines de gestión de memoria, incluso si no hay un maestro para un dispositivo en particular.

Por defecto, capabilities() son None.

QInputDevice::Capabilities QInputDevice::capabilities() const

Devuelve las capacidades del dispositivo.

Nota: Función Getter para las capacidades de las propiedades.

[static] QList<const QInputDevice *> QInputDevice::devices()

Devuelve una lista de todos los dispositivos de entrada registrados (teclados y dispositivos señaladores).

Nota: La lista de dispositivos no siempre está completa en todas las plataformas. Hasta ahora, la información más completa está disponible en la plataforma Linux, en el arranque y en respuesta a la conexión en caliente. La mayoría de las otras plataformas sólo son capaces de proporcionar dispositivos genéricos de varios tipos, sólo después de recibir eventos de ellos; y la mayoría de las plataformas no le dicen a Qt cuando un dispositivo está enchufado, o cuando está desenchufado en tiempo de ejecución.

Nota: La lista devuelta no puede utilizarse para añadir nuevos dispositivos. Para añadir una pantalla táctil simulada para un autotest, se puede usar QTest::createTouchDevice(). Los plugins de plataforma deben llamar a QWindowSystemInterface::registerInputDevice() para añadir dispositivos a medida que se descubren.

bool QInputDevice::hasCapability(QInputDevice::Capability capability) const

Devuelve si las capacidades del dispositivo incluyen la dirección capability.

QString QInputDevice::name() const

Devuelve el nombre del dispositivo.

Esta cadena puede estar vacía. Sin embargo, es útil en sistemas que tienen múltiples dispositivos de entrada: se puede utilizar para diferenciar de qué dispositivo se origina un QPointerEvent.

Nota: Función Getter para la propiedad name.

[static] const QInputDevice *QInputDevice::primaryKeyboard(const QString &seatName = QString())

Devuelve el teclado principal o maestro en el asiento dado seatName.

QString QInputDevice::seatName() const

Devuelve el asiento al que está asociado el dispositivo, si se conoce; en caso contrario, está vacío.

Los dispositivos destinados a ser utilizados conjuntamente por un usuario pueden configurarse para tener el mismo nombre de puesto. Por ahora, esto sólo es posible en las plataformas Wayland y X11.

Nota: Función Getter para la propiedad seatName.

[static, since 6.3] QStringList QInputDevice::seatNames()

Devuelve una lista de nombres de asiento para todos los dispositivos de entrada registrados (teclados y dispositivos señaladores).

Esta función se introdujo en Qt 6.3.

qint64 QInputDevice::systemId() const

Devuelve el ID de sistema específico de la plataforma (por ejemplo, ID de xinput en la plataforma X11).

Se espera que todas las plataformas proporcionen un ID de sistema único para cada dispositivo.

Nota: Función Getter para la propiedad systemId.

QInputDevice::DeviceType QInputDevice::type() const

Devuelve el tipo de dispositivo.

Nota: Función Getter para el tipo de propiedad.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.