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.