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.