Auf dieser Seite

QWaylandCompositor Class

Die Klasse „QWaylandCompositor“ verwaltet den Wayland-Display-Server. Mehr...

Header: #include <QWaylandCompositor>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
In QML: WaylandCompositor
Erbt von: QWaylandObject

Eigenschaften

Öffentliche Funktionen

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

Signale

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

Ausführliche Beschreibung

Der QWaylandCompositor verwaltet die Verbindungen zu den Clients sowie die verschiedenen „ outputs “ und „ seats “.

Normalerweise verfügt eine Compositor-Anwendung über eine einzige „ WaylandCompositor “-Instanz, die mehrere Ausgänge als untergeordnete Elemente haben kann.

Eigenschaftsdokumentation

[since 6.0] additionalShmFormats : QVector<ShmFormat>

Diese Eigenschaft enthält die Liste der zusätzlichen wl_shm-Formate, die vom Compositor als unterstützt angegeben werden.

Standardmäßig sind nur die erforderlichen Formate „ShmFormat_ARGB8888“ und „ShmFormat_XRGB8888“ aufgeführt, und diese Liste ist leer.

Diese Eigenschaft muss gesetzt werden, bevor der Compositor mit „ created “ gestartet wird. Nachträgliche Änderungen haben keine Auswirkung.

Diese Aufzählung wurde in Qt 6.0 eingeführt.

Zugriffsfunktionen:

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

Notifier-Signal:

void additionalShmFormatsChanged()

[read-only] created : bool

Diese Eigenschaft ist wahr, wenn „ QWaylandCompositor “ initialisiert wurde, andernfalls ist sie falsch.

Zugriffsfunktionen:

bool isCreated() const

Notifier-Signal:

void createdChanged()

defaultOutput : QWaylandOutput*

Diese Eigenschaft enthält den ersten Eintrag in der Liste der Ausgänge, die dem „ QWaylandCompositor “ hinzugefügt wurden, oder den Wert „null“, falls keine Ausgänge hinzugefügt wurden.

Durch das Festlegen einer neuen Standardausgabe wird diese an den Anfang der Ausgabeliste angefügt und damit zur neuen Standardausgabe, die bisherige Standardausgabe wird jedoch nicht aus der Liste entfernt. Befand sich die neue Standardausgabe bereits in der Ausgabeliste, wird sie an den Anfang der Liste verschoben.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void defaultOutputChanged()

[read-only] defaultSeat : QWaylandSeat*

Diese Eigenschaft enthält den Standardplatz für diese QWaylandCompositor.

Zugriffsfunktionen:

QWaylandSeat *defaultSeat() const

Benachrichtigungssignal:

void defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)

retainedSelection : bool

Diese Eigenschaft legt fest, ob der Compositor eine Kopie der Daten aus der Zwischenablage beibehält. Bei der Einstellung „ true “ liest der Compositor alle Daten aus der Zwischenablage des zuständigen Clients sofort ein und speichert sie im Cache. Dies geht mit einem Leistungsaufwand einher. Die Standardeinstellung ist „ false “.

Zugriffsfunktionen:

bool retainedSelectionEnabled() const
void setRetainedSelectionEnabled(bool enabled)

Notifier-Signal:

void retainedSelectionChanged(bool retainedSelection)

Siehe auch QWaylandCompositor ::retainedSelectionReceived() und QWaylandSurface::updateSelection().

socketName : QByteArray

Diese Eigenschaft enthält den Socket-Namen, den QWaylandCompositor für die Kommunikation mit Clients verwendet. Dieser muss vor dem Aufruf von „ QWaylandCompositor “ auf „ created “ gesetzt werden.

Ist `socketName` leer (Standard), wird stattdessen der Inhalt des Arguments `start` von ` --wayland-socket-name ` verwendet. Ist das Argument nicht gesetzt, versucht der Compositor, einen Socket-Namen zu ermitteln, der standardmäßig ` wayland-0 ` lautet.

Zugriffsfunktionen:

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

Notifier-Signal:

void socketNameChanged(const QByteArray &socketName)

useHardwareIntegrationExtension : bool

Diese Eigenschaft legt fest, ob die Hardware-Integrationserweiterung für diesen QWaylandCompositor aktiviert werden soll.

Diese Eigenschaft muss festgelegt werden, bevor der Compositor den Status „ created “ annimmt.

Zugriffsfunktionen:

bool useHardwareIntegrationExtension() const
void setUseHardwareIntegrationExtension(bool use)

Notifier-Signal:

void useHardwareIntegrationExtensionChanged()

Dokumentation der Mitgliedsfunktionen

QWaylandCompositor::QWaylandCompositor(QObject *parent = nullptr)

Erstellt einen `QWaylandCompositor` mit dem angegebenen ` parent`.

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

Zerstört die QWaylandCompositor

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

Wartet auf Client-Verbindungen über einen Dateideskriptor „ fd “, der auf einen bereits gebundenen und im Listening-Modus befindlichen Server-Socket verweist.

Übernimmt nicht die Kontrolle über den Dateideskriptor; dieser muss bei Bedarf explizit geschlossen werden.

Hinweis: Diese Methode ist nur mit libwayland 1.10.0 oder neuer verfügbar. Bei einer Kompilierung gegen eine ältere libwayland-Laufzeitumgebung ist diese Methode eine No-Op.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[virtual] void QWaylandCompositor::create()

Initialisiert die ` QWaylandCompositor`. Wenn Sie diese Funktion in Ihrer Unterklasse überschreiben, müssen Sie unbedingt die Implementierung der Basisklasse aufrufen.

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

Löscht die „ client “.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

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

Löscht den Client für die „ surface “.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

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

Rufe den Oberflächeninhalt von der angegebenen Adresse ` buffer` ab. Die Standardimplementierung setzt voraus, dass ein OpenGL-Kontext an den aktuellen Thread gebunden ist, um zu funktionieren. Ist dies nicht möglich, implementiere diese Funktion in deiner Compositor-Unterklasse neu, um eine benutzerdefinierte Logik zu implementieren. Die Standardimplementierung erfasst nur Shared Memory und OpenGL-Puffer. Implementieren Sie diese Funktion in Ihrer Compositor-Unterklasse neu, um weitere Puffertypen zu verarbeiten.

Hinweis: Sie sollten diese Funktion nicht manuell aufrufen, sondern stattdessen „ QWaylandSurfaceGrabber “ (grabber) verwenden.

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

Gibt das „ QWaylandOutput “ zurück, das mit dem angegebenen „ window “ verbunden ist.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe „ Q_INVOKABLE “.

QWaylandSeat *QWaylandCompositor::seatFor(QInputEvent *inputEvent)

Wählen Sie den Sitz für ein bestimmtes Eingabeereignis aus: inputEvent. Derzeit unterstützt Qt nur einen einzigen Sitz.

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

Dieses Signal wird ausgelöst, wenn eine neue Instanz von „ QWaylandSurface “ surface erstellt wurde.

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

Dieses Signal wird ausgelöst, wenn ein „ client “ eine Oberfläche mit der ID „ id “ erstellt hat. Die Schnittstelle „ version “ steht ebenfalls zur Verfügung.

Der mit diesem Signal verbundene Slot kann im Geltungsbereich des Slots eine Instanz von „ QWaylandSurface “ erstellen und initialisieren. Andernfalls wird eine Standard-Oberfläche erstellt.

Verbindungen zu diesem Signal müssen vom Verbindungstyp „ Qt::DirectConnection “ sein.

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