En esta página

Salida múltiple

Salida múltiple es un ejemplo que muestra un compositor con múltiples salidas.

Introducción

El ejemplo de Salida Múltiple demuestra cómo mostrar los mismos clientes en diferentes WaylandOutputs con diferentes tipos de composición. Una salida muestra los clientes en una cuadrícula uniforme, escalados al mismo tamaño. La otra salida es una ventana de compositor interactiva normal al estilo del escritorio.

Para una introducción a los principios básicos de la creación de un Qt Wayland Compositor con Qt, vea el ejemplo Mínimo QML.

Múltiples salidas

El ejemplo crea dos ventanas diferentes, una para cada salida. Para la vista de rejilla, nos conectamos a la señal surfaceRequested. Esta señal se emite para cada superficie que crea el cliente. Esto permite a la aplicación anular la respuesta predeterminada a la solicitud y crear una personalizada WaylandSurface.

onSurfaceRequested: (client, id, version) => {
    var surface = surfaceComponent.createObject(comp, { } );
    surface.initialize(comp, client, id, version);
}

Al recibir la señal, el ejemplo crea un WaylandQuickItem como vista de la superficie. Esto se puede añadir a la escena Qt Quick como cualquier otro elemento. En el ejemplo, lo añadimos a un GridView.

Para la ventana de estilo escritorio, utilizamos las características de la extensión XdgShell. Una vez creada la superficie, XdgShell emite una señal toplevelCreated.

XdgShell {
    onToplevelCreated: (toplevel, xdgSurface) => {
        var item = chromeComponent.createObject(defaultOutput.surfaceArea, { "shellSurface": xdgSurface } );
        item.surface.activated.connect(item.raise);
    }
}

Creamos un ShellSurfaceItem para añadir el XdgToplevel a la segunda salida. Esto permite la interacción con la superficie al estilo del escritorio.

Una vez realizados estos pasos, el contenido del cliente es visible en ambas ventanas. Los buffers que contienen los contenidos del cliente son los mismos para ambas salidas, pero se visualizan de dos maneras diferentes, y proporcionan diferentes formas para que el usuario interactúe con ellos.

Nota: Para soportar múltiples salidas Wayland en el mismo compositor, el atributo Qt::AA_ShareOpenGLContexts debe ser establecido antes de construir el objeto QGuiApplication.

Proyecto de ejemplo @ code.qt.io

Vea también Multi Screen y 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.