Sur cette page

QWaylandCompositor Class

La classe QWaylandCompositor gère le serveur d'affichage Wayland. Plus d'informations...

En-tête : #include <QWaylandCompositor>
CMake : find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake : QT += waylandcompositor
En QML : WaylandCompositor
Héritages : QWaylandObject

Propriétés

Fonctions publiques

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

Signaux

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()

Description détaillée

Le QWaylandCompositor gère les connexions avec les clients, ainsi que les différents outputs et seats.

Normalement, une application compositeur aura une seule instance WaylandCompositor, qui peut avoir plusieurs sorties comme enfants.

Documentation sur les propriétés

[since 6.0] additionalShmFormats : QVector<ShmFormat>

Cette propriété contient la liste des formats wl_shm supplémentaires annoncés comme étant pris en charge par le compositeur.

Par défaut, seuls les formats requis ShmFormat_ARGB8888 et ShmFormat_XRGB8888 sont listés et cette liste sera vide.

Cette propriété doit être définie avant que le compositeur ne soit created. Les modifications ultérieures n'auront aucun effet.

Cette propriété a été introduite dans Qt 6.0.

Fonctions d'accès :

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

Notifier signal :

void additionalShmFormatsChanged()

[read-only] created : bool

Cette propriété est vraie si QWaylandCompositor a été initialisé, sinon elle est fausse.

Fonctions d'accès :

bool isCreated() const

Signal du notificateur :

void createdChanged()

defaultOutput : QWaylandOutput*

Cette propriété contient le premier de la liste des sorties ajoutées à QWaylandCompositor, ou null si aucune sortie n'a été ajoutée.

La définition d'une nouvelle sortie par défaut l'ajoute à la liste des sorties, ce qui en fait la nouvelle sortie par défaut, mais la sortie par défaut précédente n'est pas supprimée de la liste. Si la nouvelle sortie par défaut figurait déjà dans la liste des sorties, elle est déplacée au début de la liste.

Fonctions d'accès :

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

Signal de notification :

void defaultOutputChanged()

[read-only] defaultSeat : QWaylandSeat*

Cette propriété contient le siège par défaut de cette QWaylandCompositor.

Fonctions d'accès :

QWaylandSeat *defaultSeat() const

Signal de notification :

void defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)

retainedSelection : bool

Cette propriété indique si la sélection conservée est activée.

Fonctions d'accès :

bool retainedSelectionEnabled() const
void setRetainedSelectionEnabled(bool enabled)

Signal de notification :

void retainedSelectionChanged(bool retainedSelection)

socketName : QByteArray

Cette propriété contient le nom du socket utilisé par QWaylandCompositor pour communiquer avec les clients. Elle doit être définie avant que QWaylandCompositor ne soit created.

Si socketName est vide (par défaut), le contenu de l'argument de départ --wayland-socket-name est utilisé à la place. Si l'argument n'est pas défini, le compositeur tente de trouver un nom de socket, qui est wayland-0 par défaut.

Fonctions d'accès :

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

Notificateur signal :

void socketNameChanged(const QByteArray &socketName)

useHardwareIntegrationExtension : bool

Cette propriété indique si l'extension d'intégration matérielle doit être activée pour ce site QWaylandCompositor.

Cette propriété doit être définie avant que le compositeur ne soit created.

Fonctions d'accès :

bool useHardwareIntegrationExtension() const
void setUseHardwareIntegrationExtension(bool use)

Signal du notificateur :

void useHardwareIntegrationExtensionChanged()

Member Function Documentation

QWaylandCompositor::QWaylandCompositor(QObject *parent = nullptr)

Construit un QWaylandCompositor avec l'adresse parent.

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

Détruit le QWaylandCompositor

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

Écoute les connexions des clients sur un descripteur de fichier, fd, en se référant à une socket de serveur déjà liée et à l'écoute.

Ne prend pas la propriété du descripteur de fichier ; il doit être fermé explicitement si nécessaire.

Note : Cette méthode n'est disponible qu'avec libwayland 1.10.0 ou plus récent. Si elle est construite avec une version antérieure de libwayland, cette méthode est un noop.

Note : Cette fonction peut être invoquée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

[virtual] void QWaylandCompositor::create()

Initialise le site QWaylandCompositor. Si vous surchargez cette fonction dans votre sous-classe, veillez à appeler l'implémentation de la classe de base.

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

Détruit le site client.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Détruit le client pour le site surface.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Récupère le contenu de la surface à partir de l'adresse buffer. L'implémentation par défaut nécessite qu'un contexte OpenGL soit lié au thread courant pour fonctionner. Si ce n'est pas possible, réimplémentez cette fonction dans votre sous-classe de compositeur pour mettre en œuvre une logique personnalisée. L'implémentation par défaut ne prend en compte que la mémoire partagée et les tampons OpenGL, réimplémentez cette fonction dans votre sous-classe de compositeur pour gérer d'autres types de tampons.

Remarque : vous ne devez pas appeler cette fonction manuellement, mais plutôt utiliser QWaylandSurfaceGrabber (grabber).

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

Renvoie l'adresse QWaylandOutput qui est connectée à l'adresse window donnée.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

QWaylandSeat *QWaylandCompositor::seatFor(QInputEvent *inputEvent)

Sélectionner le siège pour un événement d'entrée donné inputEvent. Actuellement, Qt ne prend en charge qu'un seul siège.

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

Ce signal est émis lorsqu'une nouvelle instance QWaylandSurface surface a été créée.

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

Ce signal est émis lorsqu'un client a créé une surface avec l'identifiant id. L'interface version est également disponible.

Le slot connecté à ce signal peut créer et initialiser une instance QWaylandSurface dans la portée du slot. Sinon, une surface par défaut est créée.

Les connexions à ce signal doivent être de type 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.