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
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.
| Constante | Valeur | Description de la constante |
|---|---|---|
QWaylandSeat::Pointer | 0x01 | Le site QWaylandSeat prend en charge l'entrée par pointeur. |
QWaylandSeat::Keyboard | 0x02 | Le site QWaylandSeat prend en charge la saisie au clavier. |
QWaylandSeat::Touch | 0x04 | Le site QWaylandSeat prend en charge la saisie tactile. |
QWaylandSeat::DefaultCapabilities | Pointer | Keyboard | Touch | Le 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.