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: |
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.
| Constante | Valor | Descripción |
|---|---|---|
QInputDevice::Capability::None | 0 | No hay información disponible sobre las capacidades del dispositivo de entrada. |
QInputDevice::Capability::Position | 0x0001 | Indica 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::Area | 0x0002 | Indica 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::Pressure | 0x0004 | Indica que se dispone de información sobre la presión, lo que significa que QEventPoint::pressure() devuelve un valor válido. |
QInputDevice::Capability::Velocity | 0x0008 | Indica que se dispone de información sobre la velocidad, lo que significa que QEventPoint::velocity() devuelve un vector válido. |
QInputDevice::Capability::NormalizedPosition | 0x0020 | Indica que la posición normalizada está disponible, lo que significa que QEventPoint::globalPosition() devuelve un valor válido. |
QInputDevice::Capability::MouseEmulation | 0x0040 | Indica que el dispositivo sintetiza eventos de ratón. |
QInputDevice::Capability::Scroll | 0x0100 | Indica que el dispositivo tiene capacidad de desplazamiento. |
QInputDevice::Capability::PixelScroll (since Qt 6.2) | 0x0080 | Indica que el dispositivo (normalmente un touchpad) se desplaza con pixel precision. |
QInputDevice::Capability::Hover | 0x0200 | Indica que el dispositivo tiene capacidad de hover. |
QInputDevice::Capability::Rotation | 0x0400 | Indica que la información rotation está disponible. |
QInputDevice::Capability::XTilt | 0x0800 | Indica que la información tilt está disponible para el eje X. |
QInputDevice::Capability::YTilt | 0x1000 | Indica que la información tilt está disponible para el eje Y. |
QInputDevice::Capability::TangentialPressure | 0x2000 | Indica que la información tangential pressure está disponible. |
QInputDevice::Capability::ZPosition | 0x4000 | Indica que se dispone de información de posición para el Z-axis. |
QInputDevice::Capability::All | 0x7FFFFFFF |
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.
| Constante | Valor | Descripción |
|---|---|---|
QInputDevice::DeviceType::Unknown | 0x0000 | No se puede identificar el dispositivo. |
QInputDevice::DeviceType::Mouse | 0x0001 | Un ratón. |
QInputDevice::DeviceType::TouchScreen | 0x0002 | En 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::TouchPad | 0x0004 | En 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::Stylus | 0x0010 | Un 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::Airbrush | 0x0020 | Un lápiz óptico con una rueda selectora para ajustar tangentialPressure. |
QInputDevice::DeviceType::Puck | 0x0008 | Un dispositivo similar a un ratón plano con un círculo transparente con cruces. |
QInputDevice::DeviceType::Keyboard | 0x1000 | Un teclado. |
QInputDevice::DeviceType::AllDevices | 0x7FFFFFFF | Cualquiera 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.