En esta página

QWaylandCompositor Class

La clase QWaylandCompositor gestiona el servidor de visualización Wayland. Más...

Cabecera: #include <QWaylandCompositor>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
En QML: WaylandCompositor
Hereda: QWaylandObject

Propiedades

Funciones públicas

QWaylandCompositor(QObject *parent = nullptr)
virtual ~QWaylandCompositor() override
void addSocketDescriptor(int fd)
QVector<QWaylandCompositor::ShmFormat> additionalShmFormats() const
virtual void create()
QWaylandOutput *defaultOutput() const
QWaylandSeat *defaultSeat() const
void destroyClient(QWaylandClient *client)
void destroyClientForSurface(QWaylandSurface *surface)
virtual void grabSurface(QWaylandSurfaceGrabber *grabber, const QWaylandBufferRef &buffer)
bool isCreated() const
QWaylandOutput *outputFor(QWindow *window) const
bool retainedSelectionEnabled() const
QWaylandSeat *seatFor(QInputEvent *inputEvent)
void setAdditionalShmFormats(const QVector<QWaylandCompositor::ShmFormat> &additionalShmFormats)
void setDefaultOutput(QWaylandOutput *output)
void setRetainedSelectionEnabled(bool enabled)
void setSocketName(const QByteArray &name)
void setUseHardwareIntegrationExtension(bool use)
QByteArray socketName() const
bool useHardwareIntegrationExtension() const

Señales

void additionalShmFormatsChanged()
void createdChanged()
void defaultOutputChanged()
void defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)
void retainedSelectionChanged(bool retainedSelection)
void socketNameChanged(const QByteArray &socketName)
void surfaceCreated(QWaylandSurface *surface)
void surfaceRequested(QWaylandClient *client, uint id, int version)
void useHardwareIntegrationExtensionChanged()

Descripción detallada

El QWaylandCompositor gestiona las conexiones con los clientes, así como los diferentes outputs y seats.

Normalmente, una aplicación compositora tendrá una única instancia WaylandCompositor, que puede tener varias salidas como hijas.

Documentación de propiedades

[since 6.0] additionalShmFormats : QVector<ShmFormat>

Esta propiedad contiene la lista de formatos wl_shm adicionales anunciados como soportados por el compositor.

Por defecto, sólo se listan los requeridos ShmFormat_ARGB8888 y ShmFormat_XRGB8888 y esta lista estará vacía.

Esta propiedad debe establecerse antes de que el compositor sea created. Los cambios posteriores no tendrán efecto.

Esta propiedad se introdujo en Qt 6.0.

Funciones de acceso:

QVector<QWaylandCompositor::ShmFormat> additionalShmFormats() const
void setAdditionalShmFormats(const QVector<QWaylandCompositor::ShmFormat> &additionalShmFormats)

Señal del notificador:

void additionalShmFormatsChanged()

[read-only] created : bool

Esta propiedad es verdadera si QWaylandCompositor ha sido inicializada, en caso contrario es falsa.

Funciones de acceso:

bool isCreated() const

Señal del notificador:

void createdChanged()

defaultOutput : QWaylandOutput*

Esta propiedad contiene la primera de la lista de salidas añadidas a QWaylandCompositor, o null si no se ha añadido ninguna salida.

Al establecer una nueva salida por defecto, ésta se añade a la lista de salidas, convirtiéndose en la nueva salida por defecto, pero la salida por defecto anterior no se elimina de la lista. Si la nueva salida por defecto ya estaba en la lista de salidas, se mueve al principio de la lista.

Funciones de acceso:

QWaylandOutput *defaultOutput() const
void setDefaultOutput(QWaylandOutput *output)

Señal del notificador:

void defaultOutputChanged()

[read-only] defaultSeat : QWaylandSeat*

Esta propiedad contiene el asiento por defecto para este QWaylandCompositor.

Funciones de acceso:

QWaylandSeat *defaultSeat() const

Señal del notificador:

void defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)

retainedSelection : bool

Esta propiedad indica si está activada la selección conservada.

Funciones de acceso:

bool retainedSelectionEnabled() const
void setRetainedSelectionEnabled(bool enabled)

Señal del notificador:

void retainedSelectionChanged(bool retainedSelection)

socketName : QByteArray

Esta propiedad contiene el nombre del socket utilizado por QWaylandCompositor para comunicarse con los clientes. Debe establecerse antes de que QWaylandCompositor se created.

Si socketName está vacío (por defecto), el contenido del argumento de inicio --wayland-socket-name se utiliza en su lugar. Si el argumento no está establecido, el compositor intenta encontrar un nombre de socket, que es wayland-0 por defecto.

Funciones de acceso:

QByteArray socketName() const
void setSocketName(const QByteArray &name)

Señal de notificador:

void socketNameChanged(const QByteArray &socketName)

useHardwareIntegrationExtension : bool

Esta propiedad establece si la extensión de integración de hardware debe estar habilitada para este QWaylandCompositor.

Esta propiedad debe establecerse antes de que el compositor sea created.

Funciones de acceso:

bool useHardwareIntegrationExtension() const
void setUseHardwareIntegrationExtension(bool use)

Señal del notificador:

void useHardwareIntegrationExtensionChanged()

Documentación de la función miembro

QWaylandCompositor::QWaylandCompositor(QObject *parent = nullptr)

Construye un QWaylandCompositor con la dirección parent.

[override virtual noexcept] QWaylandCompositor::~QWaylandCompositor()

Destruye el QWaylandCompositor

[invokable] void QWaylandCompositor::addSocketDescriptor(int fd)

Escucha conexiones de clientes en un descriptor de archivo, fd, que hace referencia a un socket de servidor ya enlazado y a la escucha.

No toma posesión del descriptor de fichero; debe cerrarse explícitamente si es necesario.

Nota: Este método sólo está disponible con libwayland 1.10.0 o posterior. Si se construye con un runtime libwayland anterior, este método es un noop.

Nota: Esta función puede ser invocada a través del sistema de meta-objetos y desde QML. Véase Q_INVOKABLE.

[virtual] void QWaylandCompositor::create()

Inicializa QWaylandCompositor. Si sobrescribe esta función en su subclase, asegúrese de llamar a la implementación de la clase base.

[invokable] void QWaylandCompositor::destroyClient(QWaylandClient *client)

Destruye la página client.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

[invokable] void QWaylandCompositor::destroyClientForSurface(QWaylandSurface *surface)

Destruye el cliente de surface.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

[virtual] void QWaylandCompositor::grabSurface(QWaylandSurfaceGrabber *grabber, const QWaylandBufferRef &buffer)

Obtiene el contenido de la superficie de la dirección buffer. La implementación por defecto requiere que un contexto OpenGL esté vinculado al hilo actual para funcionar. Si esto no es posible, reimplemente esta función en su subclase de compositor para implementar una lógica personalizada. La implementación por defecto sólo agarra memoria compartida y buffers OpenGL, reimplemente esto en su subclase compositor para manejar más tipos de búfer.

Nota: No debería llamar a esta función manualmente, sino utilizar QWaylandSurfaceGrabber (grabber).

[invokable] QWaylandOutput *QWaylandCompositor::outputFor(QWindow *window) const

Devuelve el QWaylandOutput que está conectado al window dado.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

QWaylandSeat *QWaylandCompositor::seatFor(QInputEvent *inputEvent)

Selecciona el asiento para un evento de entrada dado inputEvent. Actualmente, Qt sólo soporta un único asiento.

[signal] void QWaylandCompositor::surfaceCreated(QWaylandSurface *surface)

Esta señal se emite cuando se ha creado una nueva instancia de QWaylandSurface surface .

[signal] void QWaylandCompositor::surfaceRequested(QWaylandClient *client, uint id, int version)

Esta señal se emite cuando un client ha creado una superficie con id id. La interfaz version también está disponible.

La ranura que se conecta a esta señal puede crear e inicializar una instancia de QWaylandSurface en el ámbito de la ranura. En caso contrario, se creará una superficie por defecto.

Las conexiones a esta señal deben ser del tipo de conexión Qt::DirectConnection.

© 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.