Sur cette page

QWaylandSeat Class

La classe QWaylandSeat permet d'accéder aux entrées provenant du clavier, de la souris et des commandes tactiles. En savoir plus...

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érite de : 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

QWaylandSeat permet d'accéder à différents types d'entrées utilisateur et gère le focus clavier ainsi que le pointeur de souris. Il correspond à l'interface wl_seat du protocole Wayland.

Documentation sur les types de membres

enum QWaylandSeat::CapabilityFlag
flags QWaylandSeat::CapabilityFlags

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

ConstanteValeurDescription
QWaylandSeat::Pointer0x01L’ QWaylandSeat prend en charge la saisie par pointeur.
QWaylandSeat::Keyboard0x02L'QWaylandSeat prend en charge la saisie au clavier.
QWaylandSeat::Touch0x04L'QWaylandSeat prend en charge la saisie tactile.
QWaylandSeat::DefaultCapabilitiesPointer | Keyboard | TouchL'QWaylandSeat dispose des capacités par défaut.

Le type CapabilityFlags est une définition de type (typedef) pour QFlags<CapabilityFlag>. Il stocke une combinaison OR de valeurs CapabilityFlag.

Documentation sur les propriétés

[read-only] drag : QWaylandDrag* const

Cette propriété gère les opérations de glisser-déposer et envoie des signaux lorsqu'elles commencent et se terminent. Elle stocke des informations telles 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 de configuration du clavier.

Une configuration de clavier permet de convertir les codes de détection des touches en valeurs significatives. Par exemple, si vous utilisez une configuration de clavier avec une disposition norvégienne, la touche située à droite de la lettre L produit un Ø.

Les keymaps peuvent également servir à personnaliser les fonctions des touches, par exemple pour spécifier si les touches Ctrl et Verr Maj doivent être inversées, etc.

Fonctions d'accès :

QWaylandKeymap *keymap()

Documentation sur les fonctions membres

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

Crée un objet `QWaylandSeat` à partir des paramètres ` compositor ` et ` capabilityFlags` fournis.

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

Détruit le QWaylandSeat

QWaylandSeat::CapabilityFlags QWaylandSeat::capabilities() const

Renvoie les indicateurs de fonctionnalités associés à cette QWaylandSeat.

QWaylandCompositor *QWaylandSeat::compositor() const

Renvoie le compositeur associé à cette QWaylandSeat.

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

Ce signal est émis lorsque le client a demandé qu’une « 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.

Les paramètres ` hotspotX ` et ` hotspotY ` correspondent tous deux à des décalages par rapport au coin supérieur gauche d’une surface de pointeur, là où un clic doit avoir lieu. Par exemple, si la surface de curseur demandée est une flèche, ces paramètres indiquent où se trouve la pointe de la flèche sur cette surface.

QWaylandDrag *QWaylandSeat::drag() const

Renvoie l'objet « drag » associé à cette propriété « QWaylandSeat ».

Remarque : fonctiongetter pour la propriété drag.

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

Renvoie l'QWaylandSeat correspondant à l'resource. L'resource doit être de type wl_seat.

[virtual] void QWaylandSeat::initialize()

Initialise les parties du siège correspondant aux capacités définies dans le constructeur ou via la méthode setCapabilities().

Remarque : en règle générale , cette fonction est appelée automatiquement après la création du siège et du compositeur ; il n’est donc généralement pas nécessaire de l’appeler manuellement.

bool QWaylandSeat::isInitialized() const

Renvoie « true » si l'QWaylandSeat est initialisée ; « false » dans le cas contraire.

La valeur « true » indique que les clients peuvent désormais commencer à utiliser le poste.

QWaylandKeyboard *QWaylandSeat::keyboard() const

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

QWaylandSurface *QWaylandSeat::keyboardFocus() const

Renvoie la surface actuellement active pour la saisie au clavier.

Voir aussi setKeyboardFocus().

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

Ce signal est émis lorsque la fonction setKeyboardFocus() est appelée.

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

QWaylandKeymap *QWaylandSeat::keymap()

Renvoie l'objet keymap correspondant à cette instance de ` QWaylandSeat`.

Remarque : fonctiongetter pour la propriété keymap.

QWaylandView *QWaylandSeat::mouseFocus() const

Renvoie la vue sur laquelle se trouve actuellement le curseur de la souris.

Voir aussi setMouseFocus().

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

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

QWaylandPointer *QWaylandSeat::pointer() const

Renvoie le périphérique de pointage associé à cet QWaylandSeat.

void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)

Envoie l'event au périphérique clavier.

Remarque : l' event doit correspondre à une touche réelle du clavier dans le mappage actuel. Par exemple, « Qt::Key_Exclam » n'est généralement pas une touche distincte : sur la plupart des claviers, le point d'exclamation s'obtient en appuyant sur Shift + 1. Dans ce cas, pour envoyer un événement de pression de touche correspondant au point d'exclamation, utilisez « QKeyEvent(QEvent::KeyPress, Qt::Key_1, Qt::ShiftModifier) ».

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

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

Avertissement : cette API associe automatiquement les identifiants de session ( QEventPoint::id()) à un identifiant séquentiel avant de les envoyer au client. Elle ne doit donc pas être utilisée conjointement avec une autre API utilisant des identifiants explicites, car des conflits pourraient survenir.

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

Envoie un événement de pression (si pressed vaut true) ou de relâchement (si pressed vaut false) d'une touche qtKey au périphérique clavier.

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

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

void QWaylandSeat::sendKeyPressEvent(uint code)

Envoie un événement de frappe correspondant à la touche « code » au périphérique clavier.

void QWaylandSeat::sendKeyReleaseEvent(uint code)

Envoie un événement de relâchement de touche, avec l'code de touche, au périphérique 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 souris au périphérique de pointage avec la position locale localPos et la position dans l'espace de sortie outputSpacePos.

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

Envoie un événement de clic de 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 molette de souris au périphérique de pointeur de l'QWaylandSeat, avec les paramètres orientation et delta fournis.

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

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

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

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

Envoie un événement « frame » au périphérique tactile d'un « client » pour signaler la fin d'une série d'événements tactiles (toucher, relâcher et mouvement).

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis 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'interface surface sur un appareil tactile, avec les paramètres id, point et state fournis.

Avertissement : cette API ne doit pas être utilisée en combinaison avec le transfert d’événements tactiles via 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 « touch moved » pour le point de contact id sur surface, dont la position est position.

Remarque : vous devez envoyer un événement « touch frame » lorsque vous avez terminé d'envoyer des événements tactiles.

Avertissement : cette API ne doit pas être utilisée en combinaison avec le transfert d'événements tactiles via 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 appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

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

Envoie un événement de pression tactile pour le point de contact id sur surface, dont la position est position.

Remarque : vous devez envoyer un événement « touch frame » lorsque vous avez terminé d'envoyer des événements tactiles.

Avertissement : cette API ne doit pas être utilisée en combinaison avec le transfert d’événements tactiles via 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 pression.

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

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

Envoie un événement de relâchement du toucher pour le point de contact id sur surface, dont la position est position.

Remarque : vous devez envoyer un événement « touch frame » lorsque vous avez terminé d'envoyer des événements tactiles.

Avertissement : cette API ne doit pas être utilisée en combinaison avec le transfert d’événements tactiles via 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 ».

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

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

Envoie un événement de frappe correspondant à l'unicode UCS4 via un protocole de saisie de texte.

Remarque : cette fonction ne fonctionnera pas correctement si le client ne prend pas en charge le protocole de saisie de texte pris en charge par le compositeur.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis 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)

Envoie un événement de relâchement de touche d'une touche « unicode » (UCS4) via un protocole de saisie de texte.

Remarque : cette fonction ne fonctionnera pas correctement si le client ne prend pas en charge le protocole de saisie de texte pris en charge par le compositeur.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis 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 du clavier sur surface. Renvoie une valeur booléenne indiquant si l'opération a réussi.

Voir également keyboardFocus().

void QWaylandSeat::setMouseFocus(QWaylandView *view)

Définit la cible actuelle de la souris sur view.

Voir également mouseFocus().

QWaylandTouch *QWaylandSeat::touch() const

Renvoie le périphérique tactile associé à cette instance de ` 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.