Shell-Erweiterungen - Qt Wayland Compositor
In Wayland sind Shells Erweiterungen, die Oberflächen-Semantik bieten. Das bedeutet, dass sie dem Server und dem Client die Möglichkeit geben, über Oberflächen zu kommunizieren. Oberflächen werden in diesem Zusammenhang oft auch als "Fenster" bezeichnet, was typischerweise die Darstellung der Oberfläche im Compositor ist.
Shell-Erweiterungen bieten dem Client und dem Server Werkzeuge, um über bestimmte Dinge zu kommunizieren:
- Sie können dem Client eine Möglichkeit bieten, den Server über den Zweck einer Oberfläche zu informieren: Handelt es sich zum Beispiel um einen Tooltip, ein Popup-Menü oder ein normales Anwendungsfenster? Auf dieser Grundlage kann der Server über die Geometrie des Fensters entscheiden und darüber, wie der Benutzer mit ihm interagieren kann.
- Er kann auch Protokolle für die Manipulation der Oberfläche bereitstellen, z. B. für das Ändern der Größe, das Verschieben und das Ausblenden.
Wie andere Erweiterungen wird die Unterstützung für Shells zu einem Compositor hinzugefügt, indem sie als direkte Kinder des Top-Level-Objekts WaylandCompositor instanziiert werden. Die von Qt unterstützten Shell-Erweiterungen sind: WlShell, XdgShell und IviApplication.
- XdgShell ist eine geeignete Shell für Desktop-ähnliche Systeme, bei denen eine beliebige Anzahl von Anwendungen verbunden werden kann und bei denen die Fenster vom Benutzer manuell in der Größe verändert und neu positioniert werden können.
- IviApplication ist ein minimalistisches Protokoll, das ursprünglich für In-Vehicle Infotainment-Systeme gedacht war. Es ist nützlich für eingebettete Systeme, in denen eine vordefinierte Reihe von Anwendungen ausgeführt werden kann, oft mit vorher zugewiesenem Bildschirmbereich. Weitere Einzelheiten zu diesem Protokoll finden Sie im IVI Compositor-Beispiel.
- QtShell ist eine spezialisierte Shell für Qt-Anwendungen, die die in Qt verfügbaren Fensterverwaltungsfunktionen unterstützt. Sie kann auf einer Plattform geeignet sein, auf der sowohl der Compositor als auch die Client-Anwendungen mit Qt geschrieben sind, und auf der man sich darauf verlassen kann, dass Anwendungen Funktionen wie die manuelle Fensterpositionierung und "Bring-to-Front" nicht missbrauchen.
- WlShell ist hauptsächlich für die Kompatibilität mit Anwendungen von Drittanbietern nützlich. Dies ist auch eine Desktop-ähnliche Shell, die jedoch veraltet ist und durch XdgShell ersetzt wurde.
Wenn man ein eingebettetes System von Grund auf entwirft, gibt es keine Regeln, die festlegen, welche Shell-Erweiterung zu verwenden ist. In der Regel wird es entweder XdgShell oder IviApplication sein. Die Entscheidung sollte davon beeinflusst werden, welche Funktionen das System benötigt und ob es Anwendungen gibt, die nicht in Qt geschrieben sind und eigene Anforderungen haben.
Eine Qt Wayland Compositor kann auch mehrere Shell-Erweiterungen auf einmal unterstützen. Siehe das Minimal-QML-Beispiel für ein Beispiel, bei dem alle drei oben genannten Shell-Erweiterungen unterstützt werden.
© 2025 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.