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.