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
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.
| Constante | Valeur | Description |
|---|---|---|
QWaylandSeat::Pointer | 0x01 | L’ QWaylandSeat prend en charge la saisie par pointeur. |
QWaylandSeat::Keyboard | 0x02 | L'QWaylandSeat prend en charge la saisie au clavier. |
QWaylandSeat::Touch | 0x04 | L'QWaylandSeat prend en charge la saisie tactile. |
QWaylandSeat::DefaultCapabilities | Pointer | Keyboard | Touch | L'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.