Sur cette page

QWaylandSeat Class

La classe QWaylandSeat permet d'accéder aux entrées clavier, souris et tactile. Plus d'informations...

En-tête : #include <QWaylandSeat>
CMake : find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake : QT += waylandcompositor
En QML : WaylandSeat
Héritages : QWaylandObject

Types publics

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

Propriétés

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

Fonctions publiques

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

Signaux

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

Membres publics statiques

QWaylandSeat *fromSeatResource(struct wl_resource *resource)

Description détaillée

Le siège QWaylandSeat permet d'accéder à différents types d'entrées utilisateur et de maintenir le focus du clavier et le pointeur de la souris. Il correspond à l'interface wl_seat du protocole Wayland.

Type de membre Documentation

enum QWaylandSeat::CapabilityFlag
flags QWaylandSeat::CapabilityFlags

Ce type d'énumération décrit les capacités d'un site QWaylandSeat.

ConstanteValeurDescription de la constante
QWaylandSeat::Pointer0x01Le site QWaylandSeat prend en charge l'entrée par pointeur.
QWaylandSeat::Keyboard0x02Le site QWaylandSeat prend en charge la saisie au clavier.
QWaylandSeat::Touch0x04Le site QWaylandSeat prend en charge la saisie tactile.
QWaylandSeat::DefaultCapabilitiesPointer | Keyboard | TouchLe site QWaylandSeat possède les capacités par défaut.

Le type CapabilityFlags est un typedef pour QFlags<CapabilityFlag>. Il stocke une combinaison OU de valeurs CapabilityFlag.

Documentation sur les propriétés

[read-only] drag : QWaylandDrag* const

Cette propriété contient les opérations de glisser-déposer et envoie des signaux lorsqu'elles commencent et se terminent. La propriété stocke des détails tels que l'image qui doit se trouver sous le curseur de la souris lorsque l'utilisateur la fait glisser.

Fonctions d'accès :

QWaylandDrag *drag() const

[read-only] keymap : QWaylandKeymap* const

Cette propriété contient l'objet keymap.

Une carte de touches permet de traduire les codes de balayage des touches en une valeur significative. Par exemple, si vous utilisez un modèle de touches avec une disposition norvégienne, la touche située à droite de la lettre L produit un Ø.

Les plans de clavier peuvent également être utilisés pour personnaliser les fonctions des touches, par exemple pour spécifier si les touches Contrôle et Verrouillage CAPS doivent être interverties, etc.

Fonctions d'accès :

QWaylandKeymap *keymap()

Documentation des fonctions membres

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

Construit un QWaylandSeat pour compositor et capabilityFlags.

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

Détruit le QWaylandSeat

QWaylandSeat::CapabilityFlags QWaylandSeat::capabilities() const

Renvoie les drapeaux de capacité pour cette QWaylandSeat.

QWaylandCompositor *QWaylandSeat::compositor() const

Retourne le compositeur pour cette QWaylandSeat.

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

Ce signal est émis lorsque le client a demandé qu'une adresse surface spécifique devienne le curseur de la souris. Par exemple, lorsque l'utilisateur survole une surface particulière et que vous souhaitez que le curseur se transforme en flèche de redimensionnement.

hotspotX et hotspotY sont des décalages par rapport à la partie supérieure gauche de la surface du pointeur, là où un clic doit se produire. Par exemple, si la surface du curseur demandée est une flèche, les paramètres indiquent où se trouve la pointe de la flèche sur cette surface.

QWaylandDrag *QWaylandSeat::drag() const

Renvoie l'objet drag de cette QWaylandSeat.

Note : Fonction Getter pour la propriété drag.

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

Retourne le QWaylandSeat correspondant au resource. Le resource est censé avoir le type wl_seat.

[virtual] void QWaylandSeat::initialize()

Initialise les parties du siège correspondant aux capacités définies dans le constructeur ou par l'intermédiaire de setCapabilities().

Note : Normalement, cette fonction est appelée automatiquement après la création du siège et du compositeur, de sorte qu'il n'est généralement pas nécessaire de l'appeler manuellement.

bool QWaylandSeat::isInitialized() const

Retourne true si le site QWaylandSeat est initialisé, false dans le cas contraire.

La valeur true indique qu'il est maintenant possible pour les clients de commencer à utiliser le siège.

QWaylandKeyboard *QWaylandSeat::keyboard() const

Renvoie le clavier de ce périphérique d'entrée.

QWaylandSurface *QWaylandSeat::keyboardFocus() const

Renvoie la surface actuellement ciblée pour la saisie au clavier.

Voir aussi setKeyboardFocus().

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

Ce signal est émis lorsque setKeyboardFocus() est appelé.

newFocus a la surface qui a reçu le focus clavier ; ou nullptr si aucune surface n'a le focus. oldFocus a la surface qui a perdu le focus clavier ; ou nullptr si aucune surface n'a le focus.

QWaylandKeymap *QWaylandSeat::keymap()

Renvoie l'objet keymap pour ce site QWaylandSeat.

Note : Fonction Getter pour la propriété keymap.

QWaylandView *QWaylandSeat::mouseFocus() const

Renvoie la vue sur laquelle la souris se concentre actuellement.

Voir également setMouseFocus().

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

Ce signal est émis lorsque le focus de la souris est passé de oldFocus à newFocus.

QWaylandPointer *QWaylandSeat::pointer() const

Renvoie le périphérique du pointeur pour cette QWaylandSeat.

void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)

Envoie le message event au clavier.

Note : Le event doit correspondre à une touche de clavier réelle dans le mappage actuel. Par exemple, Qt::Key_Exclam n'est normalement pas une touche distincte : sur la plupart des claviers, le point d'exclamation est produit avec Maj + 1. Dans ce cas, pour envoyer un événement d'appui sur une touche de point d'exclamation, utilisez QKeyEvent(QEvent::KeyPress, Qt::Key_1, Qt::ShiftModifier).

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

Envoie l'adresse event à l'adresse surface spécifiée sur l'appareil tactile.

Attention : Cette API associe automatiquement QEventPoint::id() à un identifiant séquentiel avant de l'envoyer au client. Elle ne doit donc pas être utilisée en combinaison avec l'autre API utilisant des identifiants explicites, car des collisions pourraient se produire.

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

Envoie un événement d'appui (si pressed est true) ou de relâchement (si pressed est false) d'une touche qtKey au clavier.

Remarque : cette fonction ne prend pas en charge les événements de touche qui nécessitent des modificateurs, tels que Qt::Key_Exclam. Utilisez plutôt sendFullKeyEvent.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

void QWaylandSeat::sendKeyPressEvent(uint code)

Envoie un événement de pression de touche avec la touche code au clavier.

void QWaylandSeat::sendKeyReleaseEvent(uint code)

Envoie un événement de relâchement de la touche avec la touche code au clavier.

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

Place le focus de la souris sur view et envoie un événement de déplacement de la souris au dispositif de pointage avec la position locale localPos et la position de l'espace de sortie outputSpacePos.

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

Envoie un événement de pression de la souris pour button au périphérique de pointage de QWaylandSeat.

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

Envoie un événement de relâchement de la souris pour button au périphérique de pointage de QWaylandSeat.

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

Envoie un événement de roulette de souris au dispositif de pointage de QWaylandSeat avec les données orientation et delta.

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

Envoie un événement d'annulation à l'appareil tactile d'un client.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Envoie un événement de trame au dispositif tactile d'un site client pour indiquer la fin d'une série d'événements de toucher vers le haut, vers le bas et de mouvement.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Envoie un événement de point de contact à l'adresse surface sur un appareil tactile avec les adresses id, point et state.

Attention : Cette API ne doit pas être utilisée en combinaison avec la transmission d'événements tactiles à l'aide de QWaylandQuickItem::touchEventsEnabled ou sendFullTouchEvent, car cela pourrait entraîner des conflits d'identifiants tactiles.

Renvoie le numéro de série de l'événement "touch up" ou "touch down".

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

Envoie un événement tactile déplacé pour le point de contact id sur surface avec la position position.

Remarque : vous devez envoyer un événement de cadre tactile lorsque vous avez fini d'envoyer des événements tactiles.

Attention : Cette API ne doit pas être utilisée en combinaison avec l'envoi d'événements tactiles à l'aide de QWaylandQuickItem::touchEventsEnabled ou sendFullTouchEvent, car cela pourrait entraîner des conflits d'identifiants tactiles.

Renvoie le numéro de série de l'événement de mouvement tactile.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Envoie un événement de contact appuyé pour le point de contact id sur surface avec la position position.

Remarque : vous devez envoyer un événement de cadre tactile lorsque vous avez fini d'envoyer des événements tactiles.

Attention : Cette API ne doit pas être utilisée en combinaison avec l'envoi d'événements tactiles à l'aide de QWaylandQuickItem::touchEventsEnabled ou sendFullTouchEvent, car cela pourrait entraîner des conflits d'identifiants tactiles.

Renvoie le numéro de série de l'événement "touch down".

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Envoie un événement tactile validé pour le point de contact id sur surface avec la position position.

Remarque : vous devez envoyer un événement de cadre tactile lorsque vous avez fini d'envoyer des événements tactiles.

Attention : Cette API ne doit pas être utilisée en combinaison avec l'envoi d'événements tactiles à l'aide de QWaylandQuickItem::touchEventsEnabled ou sendFullTouchEvent, car cela pourrait entraîner des conflits entre les identifiants des points de contact.

Renvoie le numéro de série de l'événement de contact.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Envoie un événement d'appui sur une touche UCS4 unicode par le biais d'un protocole d'entrée de texte.

Remarque : cette fonction ne fonctionnera pas correctement si le client ne prend pas en charge le protocole d'entrée de texte pris en charge par le compositeur.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Cette fonction a été introduite dans Qt 6.7.

Voir également sendKeyEvent.

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

Envoi d'un événement de libération de clé d'un UCS4 unicode par le biais d'un protocole d'entrée de texte.

Remarque : cette fonction ne fonctionnera pas correctement si le client ne prend pas en charge le protocole d'entrée de texte pris en charge par le compositeur.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Cette fonction a été introduite dans Qt 6.7.

Voir également sendKeyEvent.

bool QWaylandSeat::setKeyboardFocus(QWaylandSurface *surface)

Définit le focus clavier actuel à surface. Renvoie un booléen indiquant si l'opération a réussi.

Voir également keyboardFocus().

void QWaylandSeat::setMouseFocus(QWaylandView *view)

Fixe le focus actuel de la souris à view.

Voir aussi mouseFocus().

QWaylandTouch *QWaylandSeat::touch() const

Renvoie l'appareil tactile pour cette 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.