Multi-Output
„Multi Output“ ist ein Beispiel, das einen Compositor mit mehreren Ausgängen veranschaulicht.
Einführung
Das Beispiel „Multi Output“ veranschaulicht, wie dieselben Clients auf verschiedenen „ WaylandOutputs “ mit unterschiedlichen Kompositionsarten angezeigt werden können. Ein Ausgang zeigt die Clients in einem einheitlichen Raster an, das auf dieselbe Größe skaliert ist. Der andere Ausgang ist ein normales, interaktives Compositor-Fenster im Desktop-Stil.

Eine Einführung in die Grundlagen der Erstellung eines Qt Wayland Compositor mit Qt finden Sie im Beispiel „Minimal QML“.
Mehrere Ausgänge
Das Beispiel erstellt zwei verschiedene Fenster, eines für jede Ausgabe. Für die Rasteransicht verbinden wir uns mit dem Signal „ surfaceRequested “. Dieses Signal wird für jede vom Client erstellte Oberfläche ausgegeben. Dadurch kann die Anwendung die Standardreaktion auf die Anforderung überschreiben und eine benutzerdefinierte „ WaylandSurface “ erstellen.
onSurfaceRequested: (client, id, version) => {
var surface = surfaceComponent.createObject(comp, { } );
surface.initialize(comp, client, id, version);
}Beim Empfang des Signals erstellt das Beispiel ein ` WaylandQuickItem ` als Ansicht der Oberfläche. Dieses kann wie jedes andere Element zur ` Qt Quick `-Szene hinzugefügt werden. Im Beispiel fügen wir es einem ` GridView` hinzu.
Für das Fenster im Desktop-Stil nutzen wir die Funktionen der Erweiterung „ XdgShell “. Sobald die Oberfläche erstellt wurde, sendet die „ XdgShell “ ein „ toplevelCreated “-Signal aus.
XdgShell {
onToplevelCreated: (toplevel, xdgSurface) => {
var item = chromeComponent.createObject(defaultOutput.surfaceArea, { "shellSurface": xdgSurface } );
item.surface.activated.connect(item.raise);
}
}Wir erstellen ein ` ShellSurfaceItem `, um die ` XdgToplevel ` zum zweiten Ausgang hinzuzufügen. Dies ermöglicht eine Interaktion mit der Oberfläche im Desktop-Stil.
Sind diese Schritte abgeschlossen, sind die Inhalte des Clients in beiden Fenstern sichtbar. Die Puffer, die die Inhalte des Clients enthalten, sind für beide Ausgänge identisch, werden jedoch auf zwei unterschiedliche Arten visualisiert und bieten dem Benutzer verschiedene Möglichkeiten zur Interaktion.
Hinweis: Um mehrere Wayland-Ausgänge im selben Compositor zu unterstützen, muss das Attribut „ Qt::AA_ShareOpenGLContexts “ gesetzt werden, bevor das „ QGuiApplication “-Objekt erstellt wird.
Siehe auch „Multi Screen “ und „Overview Compositor“.
© 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.