Sur cette page

QWaylandCompositor Class

La classe QWaylandCompositor gère le serveur d'affichage Wayland. En savoir plus...

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érite de : 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

QWaylandCompositor gère les connexions avec les clients, ainsi que les différentes instances de outputs et seats.

En règle générale, une application de composition dispose d’une seule instance d’ WaylandCompositor, qui peut avoir plusieurs sorties en tant qu’enfants.

Documentation des propriétés

[since 6.0] additionalShmFormats : QVector<ShmFormat>

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

Par défaut, seuls les formats obligatoires ShmFormat_ARGB8888 et ShmFormat_XRGB8888 sont répertoriés ; cette liste est donc vide.

Cette propriété doit être définie avant l'created ation du compositeur. Les modifications ultérieures n'auront aucun effet.

Cette énumération a été introduite dans Qt 6.0.

Fonctions d’accès :

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

Signal de notification :

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 de notification :

void createdChanged()

defaultOutput : QWaylandOutput*

Cette propriété contient la première sortie de la liste ajoutée à l'QWaylandCompositor, ou la valeur null si aucune sortie n'a été ajoutée.

La définition d’une nouvelle sortie par défaut l’ajoute en tête de la liste des sorties, ce qui en fait la nouvelle sortie par défaut, mais l’ancienne sortie par défaut 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 en début de 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 pour cette QWaylandCompositor.

Fonctions d'accès :

QWaylandSeat *defaultSeat() const

Signal de notification :

void defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)

retainedSelection : bool

Cette propriété détermine si le compositeur conserve une copie des données sélectionnées dans le presse-papiers. Lorsque l true, le compositeur lit immédiatement et met en cache toutes les données du presse-papiers provenant du client propriétaire. Cela entraîne un coût en termes de performances. La valeur par défaut est false.

Fonctions d'accès :

bool retainedSelectionEnabled() const
void setRetainedSelectionEnabled(bool enabled)

Signal de notification :

void retainedSelectionChanged(bool retainedSelection)

Voir également QWaylandCompositor ::retainedSelectionReceived() et QWaylandSurface::updateSelection().

socketName : QByteArray

Cette propriété contient le nom du socket utilisé par QWaylandCompositor pour communiquer avec les clients. Elle doit être définie avant l'QWaylandCompositor, à l'adresse created.

Si socketName est vide (valeur par défaut), c’est le contenu de l’argument start de --wayland-socket-name qui est utilisé à la place. Si cet 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)

Signal du notificateur :

void socketNameChanged(const QByteArray &socketName)

useHardwareIntegrationExtension : bool

Cette propriété détermine si l'extension d'intégration matérielle doit être activée pour cette 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 de notification :

void useHardwareIntegrationExtensionChanged()

Documentation des fonctions membres

QWaylandCompositor::QWaylandCompositor(QObject *parent = nullptr)

Crée un objet `QWaylandCompositor` avec l'parent` spécifié.

[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 référence à un socket serveur déjà lié et en écoute.

Ne prend pas possession du descripteur de fichier ; celui-ci doit être fermé explicitement si nécessaire.

Remarque : cette méthode n’est disponible qu’avec libwayland 1.10.0 ou une version plus récente. Si elle est compilée avec une version antérieure du runtime libwayland, cette méthode n’a aucun effet.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

[virtual] void QWaylandCompositor::create()

Initialise l'QWaylandCompositor. Si vous redéfinissez cette fonction dans votre sous-classe, veillez à appeler l'implémentation de la classe parente.

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

Supprime l'client.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

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

Supprime le client de l'surface.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

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

Récupère le contenu de la surface à partir de l'buffer fournie. Pour fonctionner, l'implémentation par défaut nécessite qu'un contexte OpenGL soit lié au thread actuel. Si cela n'est pas possible, réimplémentez cette fonction dans votre sous-classe de compositeur afin de mettre en œuvre une logique personnalisée. L'implémentation par défaut ne récupère que la mémoire partagée et les tampons OpenGL ; réimplémentez cette fonction dans votre sous-classe de compositeur pour prendre en charge davantage de 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'QWaylandOutput e associé à l'window donné.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

QWaylandSeat *QWaylandCompositor::seatFor(QInputEvent *inputEvent)

Sélectionnez le « seat » correspondant à un événement d'entrée donné inputEvent. Actuellement, Qt ne prend en charge qu'un seul « seat ».

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

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

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

Ce signal est émis lorsqu'une instance de ` client ` a créé une surface portant l'identifiant ` id`. L'interface ` version ` est également disponible.

Le slot relié à ce signal peut créer et initialiser une instance de ` QWaylandSurface ` dans le périmètre du slot. Dans le cas contraire, 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.