En esta página

QWaylandSeat Class

La clase QWaylandSeat proporciona acceso a la entrada de teclado, ratón y táctil. Más...

Cabecera: #include <QWaylandSeat>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
En QML: WaylandSeat
Hereda: QWaylandObject

Tipos públicos

enum CapabilityFlag { Pointer, Keyboard, Touch, DefaultCapabilities }
flags CapabilityFlags

Propiedades

  • drag : QWaylandDrag* const
  • keymap : QWaylandKeymap* const

Funciones públicas

QWaylandSeat(QWaylandCompositor *compositor, QWaylandSeat::CapabilityFlags capabilityFlags = DefaultCapabilities)
virtual ~QWaylandSeat() override
QWaylandSeat::CapabilityFlags capabilities() const
QWaylandCompositor *compositor() const
QWaylandDrag *drag() const
virtual void initialize()
bool isInitialized() const
QWaylandKeyboard *keyboard() const
QWaylandSurface *keyboardFocus() const
QWaylandKeymap *keymap()
QWaylandView *mouseFocus() const
QWaylandPointer *pointer() const
void sendFullKeyEvent(QKeyEvent *event)
void sendFullTouchEvent(QWaylandSurface *surface, QTouchEvent *event)
void sendKeyEvent(int qtKey, bool pressed)
void sendKeyPressEvent(uint code)
void sendKeyReleaseEvent(uint code)
void sendMouseMoveEvent(QWaylandView *view, const QPointF &localPos, const QPointF &outputSpacePos = QPointF())
void sendMousePressEvent(Qt::MouseButton button)
void sendMouseReleaseEvent(Qt::MouseButton button)
void sendMouseWheelEvent(Qt::Orientation orientation, int delta)
void sendTouchCancelEvent(QWaylandClient *client)
void sendTouchFrameEvent(QWaylandClient *client)
uint sendTouchPointEvent(QWaylandSurface *surface, int id, const QPointF &point, Qt::TouchPointState state)
uint sendTouchPointMoved(QWaylandSurface *surface, int id, const QPointF &position)
uint sendTouchPointPressed(QWaylandSurface *surface, int id, const QPointF &position)
uint sendTouchPointReleased(QWaylandSurface *surface, int id, const QPointF &position)
(since 6.7) void sendUnicodeKeyPressEvent(uint unicode)
(since 6.7) void sendUnicodeKeyReleaseEvent(uint unicode)
bool setKeyboardFocus(QWaylandSurface *surface)
void setMouseFocus(QWaylandView *view)
QWaylandTouch *touch() const

Señales

void cursorSurfaceRequest(QWaylandSurface *surface, int hotspotX, int hotspotY)
void keyboardFocusChanged(QWaylandSurface *newFocus, QWaylandSurface *oldFocus)
void mouseFocusChanged(QWaylandView *newFocus, QWaylandView *oldFocus)

Miembros públicos estáticos

QWaylandSeat *fromSeatResource(struct wl_resource *resource)

Descripción Detallada

El QWaylandSeat proporciona acceso a diferentes tipos de entrada de usuario y mantiene un foco de teclado y un puntero de ratón. Corresponde a la interfaz wl_seat del protocolo Wayland.

Documentación de tipos de miembros

enum QWaylandSeat::CapabilityFlag
flags QWaylandSeat::CapabilityFlags

Este tipo enum describe las capacidades de un QWaylandSeat.

ConstanteValorDescripción
QWaylandSeat::Pointer0x01QWaylandSeat admite entrada de puntero.
QWaylandSeat::Keyboard0x02QWaylandSeat admite entradas de teclado.
QWaylandSeat::Touch0x04QWaylandSeat admite la entrada táctil.
QWaylandSeat::DefaultCapabilitiesPointer | Keyboard | TouchQWaylandSeat tiene las capacidades por defecto.

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

Documentación de propiedades

[read-only] drag : QWaylandDrag* const

Esta propiedad almacena las operaciones de arrastrar y soltar y envía señales cuando comienzan y terminan. La propiedad almacena detalles como qué imagen debe estar bajo el cursor del ratón cuando el usuario la arrastra.

Funciones de acceso:

QWaylandDrag *drag() const

[read-only] keymap : QWaylandKeymap* const

Esta propiedad contiene el objeto keymap.

Un mapa de teclado proporciona una forma de traducir los códigos reales de escaneo de teclas en un valor significativo. Por ejemplo, si utiliza un mapa de teclas con una disposición noruega, la tecla situada a la derecha de la letra L produce un Ø.

Los mapas de teclas también se pueden utilizar para personalizar las funciones de las teclas, por ejemplo, para especificar si se deben intercambiar las teclas Control y Bloq Mayús, etc.

Funciones de acceso:

QWaylandKeymap *keymap()

Documentación de las funciones de acceso

QWaylandSeat::QWaylandSeat(QWaylandCompositor *compositor, QWaylandSeat::CapabilityFlags capabilityFlags = DefaultCapabilities)

Construye un QWaylandSeat para los datos compositor y capabilityFlags.

[override virtual noexcept] QWaylandSeat::~QWaylandSeat()

Destruye el QWaylandSeat

QWaylandSeat::CapabilityFlags QWaylandSeat::capabilities() const

Devuelve las banderas de capacidad para este QWaylandSeat.

QWaylandCompositor *QWaylandSeat::compositor() const

Devuelve el compositor para este QWaylandSeat.

[signal] void QWaylandSeat::cursorSurfaceRequest(QWaylandSurface *surface, int hotspotX, int hotspotY)

Esta señal se emite cuando el cliente ha solicitado que un surface específico sea el cursor del ratón. Por ejemplo, cuando el usuario pasa el ratón por encima de una superficie determinada y se desea que el cursor se convierta en una flecha de cambio de tamaño.

Tanto hotspotX como hotspotY son desplazamientos desde la parte superior izquierda de la superficie del puntero, donde debería producirse un clic. Por ejemplo, si la superficie del cursor solicitada es una flecha, los parámetros indican dónde está la punta de la flecha, en esa superficie.

QWaylandDrag *QWaylandSeat::drag() const

Devuelve el objeto de arrastre para este QWaylandSeat.

Nota: Función Getter para la propiedad drag.

[static] QWaylandSeat *QWaylandSeat::fromSeatResource(struct wl_resource *resource)

Devuelve el QWaylandSeat correspondiente al resource. Se espera que el resource tenga el tipo wl_seat.

[virtual] void QWaylandSeat::initialize()

Inicializa las partes del asiento correspondientes a las capacidades establecidas en el constructor, o a través de setCapabilities().

Nota: Normalmente, esta función se llama automáticamente una vez creados el asiento y el compositor, por lo que llamarla manualmente suele ser innecesario.

bool QWaylandSeat::isInitialized() const

Devuelve true si QWaylandSeat está inicializado; false en caso contrario.

El valor true indica que ya es posible que los clientes empiecen a utilizar la sede.

QWaylandKeyboard *QWaylandSeat::keyboard() const

Devuelve el teclado de este dispositivo de entrada.

QWaylandSurface *QWaylandSeat::keyboardFocus() const

Devuelve la superficie actual enfocada para la entrada de teclado.

Véase también setKeyboardFocus().

[signal] void QWaylandSeat::keyboardFocusChanged(QWaylandSurface *newFocus, QWaylandSurface *oldFocus)

Esta señal se emite cuando se llama a setKeyboardFocus().

newFocus tiene la superficie que recibió el foco del teclado; o nullptr si ninguna superficie tiene el foco. oldFocus tiene la superficie que perdió el foco del teclado; o nullptr si ninguna superficie tenía el foco.

QWaylandKeymap *QWaylandSeat::keymap()

Devuelve el objeto keymap para este QWaylandSeat.

Nota: Función Getter para la propiedad keymap.

QWaylandView *QWaylandSeat::mouseFocus() const

Devuelve la vista que actualmente tiene el foco del ratón.

Véase también setMouseFocus().

[signal] void QWaylandSeat::mouseFocusChanged(QWaylandView *newFocus, QWaylandView *oldFocus)

Esta señal se emite cuando el foco del ratón ha cambiado de oldFocus a newFocus.

QWaylandPointer *QWaylandSeat::pointer() const

Devuelve el dispositivo de puntero para este QWaylandSeat.

void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)

Envía el event al dispositivo de teclado.

Nota: event debe corresponder a una tecla real del teclado en la asignación actual. Por ejemplo, Qt::Key_Exclam normalmente no es una tecla independiente: con la mayoría de los teclados, el signo de exclamación se produce con Mayúsculas + 1. En ese caso, para enviar un evento de pulsación de tecla de exclamación, utilice QKeyEvent(QEvent::KeyPress, Qt::Key_1, Qt::ShiftModifier).

void QWaylandSeat::sendFullTouchEvent(QWaylandSurface *surface, QTouchEvent *event)

Envía la dirección event a la dirección surface especificada en el dispositivo táctil.

Advertencia: Esta API asignará automáticamente QEventPoint::id() a un id secuencial antes de enviarlo al cliente. Por lo tanto, no debe utilizarse en combinación con la otra API que utiliza id explícitos, ya que podrían producirse colisiones.

[invokable] void QWaylandSeat::sendKeyEvent(int qtKey, bool pressed)

Envía un evento de pulsación (si pressed es true) o liberación (si pressed es false) de una tecla qtKey al dispositivo de teclado.

Nota: Esta función no admite eventos de tecla que requieran modificadores, como Qt::Key_Exclam. Utilice sendFullKeyEvent en su lugar.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

void QWaylandSeat::sendKeyPressEvent(uint code)

Envía un evento de pulsación de tecla con la tecla code al dispositivo de teclado.

void QWaylandSeat::sendKeyReleaseEvent(uint code)

Envía un evento de liberación de tecla con la tecla code al dispositivo de teclado.

void QWaylandSeat::sendMouseMoveEvent(QWaylandView *view, const QPointF &localPos, const QPointF &outputSpacePos = QPointF())

Establece el foco del ratón en view y envía un evento de movimiento del ratón al dispositivo puntero con la posición local localPos y la posición espacial de salida outputSpacePos.

void QWaylandSeat::sendMousePressEvent(Qt::MouseButton button)

Envía un evento de pulsación de ratón para button al dispositivo de puntero de QWaylandSeat.

void QWaylandSeat::sendMouseReleaseEvent(Qt::MouseButton button)

Envía un evento de liberación del ratón para button al dispositivo de puntero de QWaylandSeat.

void QWaylandSeat::sendMouseWheelEvent(Qt::Orientation orientation, int delta)

Envía un evento de rueda de ratón al dispositivo de puntero de QWaylandSeat con los datos orientation y delta.

[invokable] void QWaylandSeat::sendTouchCancelEvent(QWaylandClient *client)

Envía un evento de cancelación al dispositivo táctil de un client.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

[invokable] void QWaylandSeat::sendTouchFrameEvent(QWaylandClient *client)

Envía un evento de marco al dispositivo táctil de un client para indicar el final de una serie de eventos de toque arriba, abajo y movimiento.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

uint QWaylandSeat::sendTouchPointEvent(QWaylandSurface *surface, int id, const QPointF &point, Qt::TouchPointState state)

Envía un evento de punto táctil a la dirección surface de un dispositivo táctil con las direcciones id, point y state.

Advertencia: Esta API no debe utilizarse en combinación con el reenvío de eventos de toque utilizando QWaylandQuickItem::touchEventsEnabled o sendFullTouchEvent, ya que podría dar lugar a ids de toque conflictivos.

Devuelve la serie del evento de toque hacia arriba o hacia abajo.

[invokable] uint QWaylandSeat::sendTouchPointMoved(QWaylandSurface *surface, int id, const QPointF &position)

Envía un evento de toque movido para el punto táctil id en surface con la posición position.

Nota: Necesitas enviar un evento de marco táctil cuando hayas terminado de enviar eventos táctiles.

Advertencia: Esta API no debe usarse en combinación con el reenvío de eventos de toque usando QWaylandQuickItem::touchEventsEnabled o sendFullTouchEvent, ya que podría llevar a ids de toque conflictivos.

Devuelve la serie del evento de movimiento táctil.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

[invokable] uint QWaylandSeat::sendTouchPointPressed(QWaylandSurface *surface, int id, const QPointF &position)

Envía un evento de toque pulsado para el punto táctil id en surface con la posición position.

Nota: Necesitas enviar un evento de marco táctil cuando hayas terminado de enviar eventos táctiles.

Advertencia: Esta API no debe utilizarse en combinación con el reenvío de eventos de toque utilizando QWaylandQuickItem::touchEventsEnabled o sendFullTouchEvent, ya que podría dar lugar a ids de toque conflictivos.

Devuelve el serial del evento de toque.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

[invokable] uint QWaylandSeat::sendTouchPointReleased(QWaylandSurface *surface, int id, const QPointF &position)

Envía un evento de toque liberado para el punto táctil id en surface con la posición position.

Nota: Necesitas enviar un evento de marco táctil cuando hayas terminado de enviar eventos táctiles.

Advertencia: Esta API no debe utilizarse en combinación con el reenvío de eventos de toque utilizando QWaylandQuickItem::touchEventsEnabled o sendFullTouchEvent, ya que podría dar lugar a ids de toque conflictivos.

Devuelve el serial del evento de toque.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

[invokable, since 6.7] void QWaylandSeat::sendUnicodeKeyPressEvent(uint unicode)

Envía un evento de pulsación de tecla de un UCS4 unicode a través de un protocolo de entrada de texto.

Nota: Esta función no funcionará correctamente si el cliente no admite el protocolo de entrada de texto que admite el compositor.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

Esta función se introdujo en Qt 6.7.

Véase también sendKeyEvent.

[invokable, since 6.7] void QWaylandSeat::sendUnicodeKeyReleaseEvent(uint unicode)

Envía un evento de liberación de tecla de un UCS4 unicode a través de un protocolo de entrada de texto.

Nota: Esta función no funcionará correctamente si el cliente no admite el protocolo de entrada de texto que admite el compositor.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

Esta función se introdujo en Qt 6.7.

Véase también sendKeyEvent.

bool QWaylandSeat::setKeyboardFocus(QWaylandSurface *surface)

Establece el foco de teclado actual en surface. Devuelve un booleano que indica si la operación se ha realizado correctamente.

Véase también keyboardFocus().

void QWaylandSeat::setMouseFocus(QWaylandView *view)

Establece el foco actual del ratón en view.

Véase también mouseFocus().

QWaylandTouch *QWaylandSeat::touch() const

Devuelve el dispositivo táctil para este QWaylandSeat.

© 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.