QWaylandCompositor Class

Die Klasse QWaylandCompositor verwaltet den Wayland-Anzeigeserver. Mehr...

Kopfzeile: #include <QWaylandCompositor>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
In QML: WaylandCompositor
Vererbt: 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()

Detaillierte Beschreibung

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

Normalerweise hat eine Compositor-Anwendung eine einzige WaylandCompositor -Instanz, die mehrere Ausgaben als Kinder haben kann.

Eigenschaft Dokumentation

[since 6.0] additionalShmFormats : QVector<ShmFormat>

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

Standardmäßig werden nur die erforderlichen Formate ShmFormat_ARGB8888 und ShmFormat_XRGB8888 aufgelistet und diese Liste ist leer.

Diese Eigenschaft muss festgelegt werden, bevor der Compositor unter created aufgerufen wird. Spätere Änderungen haben keine Auswirkung mehr.

Diese Eigenschaft 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 : const bool

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

Zugriffsfunktionen:

bool isCreated() const

Benachrichtigungssignal:

void createdChanged()

defaultOutput : QWaylandOutput*

Diese Eigenschaft enthält die erste in der Liste der zu QWaylandCompositor hinzugefügten Ausgaben oder null, wenn keine Ausgaben hinzugefügt wurden.

Wenn eine neue Standardausgabe gesetzt wird, wird sie der Ausgabeliste vorangestellt und zur neuen Standardausgabe gemacht, aber die vorherige Standardausgabe wird nicht aus der Liste entfernt. Befand sich die neue Standardausgabe bereits in der Liste der Ausgaben, wird sie an den Anfang der Liste verschoben.

Zugriffsfunktionen:

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

Melder-Signal:

void defaultOutputChanged()

[read-only] defaultSeat : QWaylandSeat* const

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

Zugriffsfunktionen:

QWaylandSeat *defaultSeat() const

Anmelder-Signal:

void defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)

retainedSelection : bool

Diese Eigenschaft gibt an, ob die beibehaltene Auswahl aktiviert ist.

Zugriffsfunktionen:

bool retainedSelectionEnabled() const
void setRetainedSelectionEnabled(bool enabled)

Benachrichtigungssignal:

void retainedSelectionChanged(bool retainedSelection)

socketName : QByteArray

Diese Eigenschaft enthält den Socket-Namen, der von QWaylandCompositor für die Kommunikation mit Clients verwendet wird. Sie muss gesetzt werden, bevor die QWaylandCompositor created ist.

Wenn der Socket-Name leer ist (die Vorgabe), wird stattdessen der Inhalt des Startarguments --wayland-socket-name verwendet. Wenn das Argument nicht gesetzt ist, versucht der Compositor, einen Socket-Namen zu finden, der standardmäßig wayland-0 lautet.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

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 gesetzt werden, bevor der Compositor created wird.

Zugriffsfunktionen:

bool useHardwareIntegrationExtension() const
void setUseHardwareIntegrationExtension(bool use)

Benachrichtigungssignal:

void useHardwareIntegrationExtensionChanged()

Member Function Dokumentation

QWaylandCompositor::QWaylandCompositor(QObject *parent = nullptr)

Konstruiert einen QWaylandCompositor mit der angegebenen parent.

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

Zerstört die QWaylandCompositor

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

Lauschen auf Client-Verbindungen zu einem Dateideskriptor, fd, der auf einen bereits gebundenen und lauschenden Server-Socket verweist.

Übernimmt nicht den Besitz des Dateideskriptors; er muss bei Bedarf explizit geschlossen werden.

Hinweis: Diese Methode ist nur mit libwayland 1.10.0 oder neuer verfügbar. Wenn sie gegen eine frühere libwayland-Laufzeitumgebung gebaut wurde, ist diese Methode ein Noop.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

[virtual] void QWaylandCompositor::create()

Initialisiert die QWaylandCompositor. Wenn Sie diese Funktion in Ihrer Unterklasse außer Kraft setzen, müssen Sie die Implementierung der Basisklasse aufrufen.

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

Zerstört die client.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

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

Zerstört den Client für die surface.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

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

Holt den Oberflächeninhalt aus der angegebenen buffer. Die Standardimplementierung erfordert, dass ein OpenGL-Kontext an den aktuellen Thread gebunden ist, um zu funktionieren. Wenn dies nicht möglich ist, implementieren Sie diese Funktion in Ihrer Compositor-Unterklasse neu, um eine eigene Logik zu implementieren. Die Standardimplementierung greift nur auf gemeinsam genutzten Speicher und OpenGL-Puffer zu; implementieren Sie diese Funktion in Ihrer Compositor-Unterklasse neu, um weitere Puffertypen zu verarbeiten.

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

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

Gibt die QWaylandOutput zurück, die mit dem angegebenen window verbunden ist.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

QWaylandSeat *QWaylandCompositor::seatFor(QInputEvent *inputEvent)

Auswahl des Sitzes für ein gegebenes Eingabeereignis inputEvent. Derzeit unterstützt Qt nur einen einzigen Sitz.

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

Dieses Signal wird ausgegeben, wenn eine neue QWaylandSurface Instanz surface erstellt wurde.

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

Dieses Signal wird ausgegeben, wenn ein client eine Oberfläche mit der id id erstellt hat. Die Schnittstelle version ist ebenfalls verfügbar.

Der Slot, der sich mit diesem Signal verbindet, kann eine QWaylandSurface Instanz im Bereich des Slots erstellen und initialisieren. Andernfalls wird eine Standardoberfläche erstellt.

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

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