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
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.
| Constante | Valor | Descripción |
|---|---|---|
QWaylandSeat::Pointer | 0x01 | QWaylandSeat admite entrada de puntero. |
QWaylandSeat::Keyboard | 0x02 | QWaylandSeat admite entradas de teclado. |
QWaylandSeat::Touch | 0x04 | QWaylandSeat admite la entrada táctil. |
QWaylandSeat::DefaultCapabilities | Pointer | Keyboard | Touch | QWaylandSeat 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.