Extensions de shell - Qt Wayland Compositor
Sous Wayland, les shells sont des extensions qui fournissent une sémantique des surfaces. Cela signifie qu’elles permettent au serveur et au client de communiquer à propos des surfaces. Dans ce contexte, les surfaces sont souvent également appelées « fenêtres », ce qui correspond généralement à la représentation de la surface dans le compositeur.
Les extensions de shell fournissent des outils permettant au client et au serveur de communiquer sur certains aspects :
- Elles permettent au client d’indiquer au serveur la fonction d’une surface : s’agit-il d’une info-bulle, d’un menu contextuel ou d’une fenêtre d’application classique, par exemple ? Sur cette base, le serveur peut déterminer la géométrie de la fenêtre et la manière dont l’utilisateur peut interagir avec celle-ci.
- Elles peuvent également fournir des protocoles permettant de manipuler les surfaces, par exemple pour les redimensionner, les déplacer ou les masquer.
Comme pour les autres extensions, la prise en charge des shells est ajoutée à un compositeur en les instanciant en tant qu’enfants directs de l’objet de niveau supérieur ` WaylandCompositor `. Les extensions de shell prises en charge par Qt sont :
- XdgShell est un shell adapté aux systèmes de type bureau, où un nombre illimité d’applications peut se connecter et où les fenêtres peuvent être redimensionnées et repositionnées manuellement par l’utilisateur.
- IviApplication est un protocole minimaliste, initialement destiné aux systèmes d’In-Vehicle Infotainment embarqués (IVI). Il est utile pour les systèmes embarqués, où un ensemble prédéfini d’applications peut s’exécuter, souvent avec un espace d’écran pré-attribué. Pour plus de détails sur ce protocole, consultez l’exemple IVI Compositor.
- QtShell est un shell spécialisé pour les applications Qt qui prend en charge les fonctionnalités de gestion des fenêtres disponibles dans Qt. Il peut convenir sur une plateforme où le compositeur et les applications clientes sont tous deux écrits en Qt, et où l’on est certain que les applications n’abuseront pas de fonctionnalités telles que le positionnement manuel des fenêtres et la fonction « amener au premier plan ».
- WlShell est principalement utile pour assurer la compatibilité avec des applications tierces. Il s’agit également d’un shell de type bureau, mais il a été déprécié et remplacé par XdgShell.
Lors de la conception d’un système embarqué à partir de zéro, aucune règle ne détermine quelle extension de shell utiliser. Il s’agira généralement soit de XdgShell, soit de IviApplication. Le choix doit être guidé par les fonctionnalités dont le système aura besoin, ainsi que par la présence éventuelle d’applications non écrites en Qt et ayant leurs propres exigences.
Un Qt Wayland Compositor peut également prendre en charge plusieurs extensions de shell à la fois. Consultez l’exemple « Minimal QML » pour voir un cas où les trois extensions de shell mentionnées ci-dessus sont prises en charge.
© 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.