Auf dieser Seite

QWaylandSeat Class

Die Klasse „QWaylandSeat“ ermöglicht den Zugriff auf Tastatur-, Maus- und Touch-Eingaben. Mehr...

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

Öffentliche Typen

enum CapabilityFlag { Pointer, Keyboard, Touch, DefaultCapabilities }
flags CapabilityFlags

Eigenschaften

  • drag : QWaylandDrag* const
  • keymap : QWaylandKeymap* const

Öffentliche Funktionen

QWaylandSeat(QWaylandCompositor *compositor, QWaylandSeat::CapabilityFlags capabilityFlags = DefaultCapabilities)
virtual ~QWaylandSeat() override
QWaylandSeat::CapabilityFlags capabilities() const
QWaylandCompositor *compositor() const
QWaylandDrag *drag() const
virtual void initialize()
bool isInitialized() const
QWaylandKeyboard *keyboard() const
QWaylandSurface *keyboardFocus() const
QWaylandKeymap *keymap()
QWaylandView *mouseFocus() const
QWaylandPointer *pointer() const
void sendFullKeyEvent(QKeyEvent *event)
void sendFullTouchEvent(QWaylandSurface *surface, QTouchEvent *event)
void sendKeyEvent(int qtKey, bool pressed)
void sendKeyPressEvent(uint code)
void sendKeyReleaseEvent(uint code)
void sendMouseMoveEvent(QWaylandView *view, const QPointF &localPos, const QPointF &outputSpacePos = QPointF())
void sendMousePressEvent(Qt::MouseButton button)
void sendMouseReleaseEvent(Qt::MouseButton button)
void sendMouseWheelEvent(Qt::Orientation orientation, int delta)
void sendTouchCancelEvent(QWaylandClient *client)
void sendTouchFrameEvent(QWaylandClient *client)
uint sendTouchPointEvent(QWaylandSurface *surface, int id, const QPointF &point, Qt::TouchPointState state)
uint sendTouchPointMoved(QWaylandSurface *surface, int id, const QPointF &position)
uint sendTouchPointPressed(QWaylandSurface *surface, int id, const QPointF &position)
uint sendTouchPointReleased(QWaylandSurface *surface, int id, const QPointF &position)
(since 6.7) void sendUnicodeKeyPressEvent(uint unicode)
(since 6.7) void sendUnicodeKeyReleaseEvent(uint unicode)
bool setKeyboardFocus(QWaylandSurface *surface)
void setMouseFocus(QWaylandView *view)
QWaylandTouch *touch() const

Signale

void cursorSurfaceRequest(QWaylandSurface *surface, int hotspotX, int hotspotY)
void keyboardFocusChanged(QWaylandSurface *newFocus, QWaylandSurface *oldFocus)
void mouseFocusChanged(QWaylandView *newFocus, QWaylandView *oldFocus)

Statische öffentliche Mitglieder

QWaylandSeat *fromSeatResource(struct wl_resource *resource)

Ausführliche Beschreibung

QWaylandSeat bietet Zugriff auf verschiedene Arten von Benutzereingaben und verwaltet den Tastaturfokus sowie den Mauszeiger. Es entspricht der Schnittstelle „wl_seat“ im Wayland-Protokoll.

Dokumentation zu den Mitgliedstypen

enum QWaylandSeat::CapabilityFlag
flags QWaylandSeat::CapabilityFlags

Dieser Enum-Typ beschreibt die Funktionen eines „ QWaylandSeat “.

KonstanteWertBeschreibung
QWaylandSeat::Pointer0x01Das QWaylandSeat unterstützt die Eingabe über Zeiger.
QWaylandSeat::Keyboard0x02Das „ QWaylandSeat “ unterstützt die Tastatureingabe.
QWaylandSeat::Touch0x04Das „ QWaylandSeat “ unterstützt die Touch-Eingabe.
QWaylandSeat::DefaultCapabilitiesPointer | Keyboard | TouchDer „ QWaylandSeat “ verfügt über die Standardfunktionen.

Der Typ `CapabilityFlags` ist ein `typedef` für ` QFlags<CapabilityFlag>`. Er speichert eine ODER-Kombination von `CapabilityFlag`-Werten.

Dokumentation zu den Eigenschaften

[read-only] drag : QWaylandDrag* const

Diese Eigenschaft verwaltet Drag-and-Drop-Vorgänge und sendet Signale, wenn diese beginnen und enden. Die Eigenschaft speichert Details wie beispielsweise, welches Bild sich unter dem Mauszeiger befinden soll, wenn der Benutzer es zieht.

Zugriffsfunktionen:

QWaylandDrag *drag() const

[read-only] keymap : QWaylandKeymap* const

Diese Eigenschaft enthält das Keymap-Objekt.

Eine Tastenbelegung ermöglicht es, die tatsächlichen Tasten-Scan-Codes in einen aussagekräftigen Wert umzuwandeln. Wenn Sie beispielsweise eine Tastenbelegung mit norwegischem Layout verwenden, erzeugt die Taste rechts neben dem Buchstaben L ein Ø.

Tastaturbelegungen können auch verwendet werden, um Tastenfunktionen anzupassen, z. B. um festzulegen, ob die Strg-Taste und die Feststelltaste vertauscht werden sollen, und so weiter.

Zugriffsfunktionen:

QWaylandKeymap *keymap()

Dokumentation zu Mitgliedsfunktionen

QWaylandSeat::QWaylandSeat(QWaylandCompositor *compositor, QWaylandSeat::CapabilityFlags capabilityFlags = DefaultCapabilities)

Erstellt ein `QWaylandSeat` für die angegebenen Werte ` compositor ` und ` capabilityFlags`.

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

Zerstört die QWaylandSeat

QWaylandSeat::CapabilityFlags QWaylandSeat::capabilities() const

Gibt die Funktionsmerkmale für diese „ QWaylandSeat “ zurück.

QWaylandCompositor *QWaylandSeat::compositor() const

Gibt den Compositor für diese „ QWaylandSeat “ zurück.

[signal] void QWaylandSeat::cursorSurfaceRequest(QWaylandSurface *surface, int hotspotX, int hotspotY)

Dieses Signal wird ausgelöst, wenn der Client angefordert hat, dass eine bestimmte „ surface “ als Mauszeiger verwendet wird. Dies ist beispielsweise der Fall, wenn der Benutzer mit der Maus über eine bestimmte Fläche fährt und Sie möchten, dass sich der Mauszeiger in einen Pfeil zum Ändern der Größe verwandelt.

Sowohl „ hotspotX “ als auch „ hotspotY “ sind Abstände von der oberen linken Ecke einer Zeigerfläche, an der ein Klick erfolgen soll. Wenn die angeforderte Zeigerfläche beispielsweise ein Pfeil ist, geben die Parameter an, wo sich die Pfeilspitze auf dieser Fläche befindet.

QWaylandDrag *QWaylandSeat::drag() const

Gibt das Drag-Objekt für dieses „ QWaylandSeat “ zurück.

Hinweis: Getter -Funktion für die Eigenschaft „drag“.

[static] QWaylandSeat *QWaylandSeat::fromSeatResource(struct wl_resource *resource)

Gibt den „ QWaylandSeat “ zurück, der dem „ resource “ entspricht. Der „ resource “ muss vom Typ „wl_seat“ sein.

[virtual] void QWaylandSeat::initialize()

Initialisiert Teile des Sitzes entsprechend den im Konstruktor oder über setCapabilities() festgelegten Fähigkeiten.

Hinweis: Normalerweise wird diese Funktion automatisch aufgerufen, nachdem der „Seat“ und der „Compositor“ erstellt wurden, sodass ein manueller Aufruf in der Regel nicht erforderlich ist.

bool QWaylandSeat::isInitialized() const

Gibt „true“ zurück, wenn der „ QWaylandSeat “ initialisiert ist; andernfalls „false“.

Der Wert „ true “ gibt an, dass Clients den Sitz nun nutzen können.

QWaylandKeyboard *QWaylandSeat::keyboard() const

Gibt die Tastatur für dieses Eingabegerät zurück.

QWaylandSurface *QWaylandSeat::keyboardFocus() const

Gibt die aktuell fokussierte Oberfläche für die Tastatureingabe zurück.

Siehe auch „ setKeyboardFocus()“.

[signal] void QWaylandSeat::keyboardFocusChanged(QWaylandSurface *newFocus, QWaylandSurface *oldFocus)

Dieses Signal wird ausgelöst, wenn „ setKeyboardFocus()“ aufgerufen wird.

newFocus Gibt die Oberfläche zurück, die den Tastaturfokus erhalten hat; oder nullptr, wenn keine Oberfläche den Fokus hat. oldFocus gibt die Oberfläche zurück, die den Tastaturfokus verloren hat; oder nullptr, wenn keine Oberfläche den Fokus hatte.

QWaylandKeymap *QWaylandSeat::keymap()

Gibt das Keymap-Objekt für diese „ QWaylandSeat “ zurück.

Hinweis: Getter -Funktion für die Eigenschaft „keymap“.

QWaylandView *QWaylandSeat::mouseFocus() const

Gibt die Ansicht zurück, auf der sich derzeit der Mausfokus befindet.

Siehe auch ` setMouseFocus()`.

[signal] void QWaylandSeat::mouseFocusChanged(QWaylandView *newFocus, QWaylandView *oldFocus)

Dieses Signal wird ausgelöst, wenn sich der Mausfokus von oldFocus auf newFocus verschoben hat.

QWaylandPointer *QWaylandSeat::pointer() const

Gibt den Zeiger auf das Gerät für dieses „ QWaylandSeat “ zurück.

void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)

Sendet die „ event “ an das Tastaturgerät.

Hinweis: Der „ event “ sollte einer tatsächlichen Tastaturtaste in der aktuellen Zuordnung entsprechen. Beispielsweise ist „ Qt::Key_Exclam “ normalerweise keine eigenständige Taste: Bei den meisten Tastaturen wird das Ausrufezeichen mit „Shift + 1“ erzeugt. Um in diesem Fall ein Tastendruckereignis für das Ausrufezeichen zu senden, verwenden Sie „ QKeyEvent(QEvent::KeyPress, Qt::Key_1, Qt::ShiftModifier) “.

void QWaylandSeat::sendFullTouchEvent(QWaylandSurface *surface, QTouchEvent *event)

Sendet den Befehl „ event “ an die angegebene „ surface “ auf dem Touch-Gerät.

Warnung: Diese API ordnet „ QEventPoint::id()“ automatisch eine fortlaufende ID zu, bevor sie an den Client gesendet wird. Sie sollte daher nicht in Kombination mit der anderen API verwendet werden, die explizite IDs nutzt, da es zu Kollisionen kommen kann.

[invokable] void QWaylandSeat::sendKeyEvent(int qtKey, bool pressed)

Sendet ein Tastenanschlag-Ereignis (wenn „ pressed “ auf „ true “ gesetzt ist) oder ein Tastenloslass-Ereignis (wenn „ pressed “ auf „ false “ gesetzt ist) für die Taste „ qtKey “ an das Tastaturgerät.

Hinweis: Diese Funktion unterstützt keine Tastenereignisse, die Modifikatortasten erfordern, wie z. B. Qt::Key_Exclam. Verwenden Sie stattdessen sendFullKeyEvent.

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

void QWaylandSeat::sendKeyPressEvent(uint code)

Sendet ein Tastendruck-Ereignis mit der Tasten code an das Tastaturgerät.

void QWaylandSeat::sendKeyReleaseEvent(uint code)

Sendet ein Tastenloslass-Ereignis mit dem Tasten code an das Tastaturgerät.

void QWaylandSeat::sendMouseMoveEvent(QWaylandView *view, const QPointF &localPos, const QPointF &outputSpacePos = QPointF())

Setzt den Mausfokus auf view und sendet ein Mausbewegungsereignis an das Zeigegerät mit der lokalen Position localPos und der Position im Ausgaberäum outputSpacePos.

void QWaylandSeat::sendMousePressEvent(Qt::MouseButton button)

Sendet ein Mausklick-Ereignis für „ button “ an das Zeigegerät von „ QWaylandSeat “.

void QWaylandSeat::sendMouseReleaseEvent(Qt::MouseButton button)

Sendet ein Maus-Release-Ereignis für „ button “ an das Zeigegerät von „ QWaylandSeat “.

void QWaylandSeat::sendMouseWheelEvent(Qt::Orientation orientation, int delta)

Sendet ein Mausrad-Ereignis an das Zeigegerät des „ QWaylandSeat “ mit den angegebenen Werten für „ orientation “ und „ delta “.

[invokable] void QWaylandSeat::sendTouchCancelEvent(QWaylandClient *client)

Sendet ein „Cancel“-Ereignis an das Touch-Gerät eines „ client “.

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

[invokable] void QWaylandSeat::sendTouchFrameEvent(QWaylandClient *client)

Sendet ein Frame-Ereignis an das Touch-Gerät eines „ client “, um das Ende einer Reihe von Berührungs-, Abwärts- und Bewegungsereignissen anzuzeigen.

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

uint QWaylandSeat::sendTouchPointEvent(QWaylandSurface *surface, int id, const QPointF &point, Qt::TouchPointState state)

Sendet ein Touch-Point-Ereignis an die „ surface “ auf einem Touch-Gerät mit den angegebenen Werten für „ id “, „ point “ und „ state “.

Warnung: Diese API sollte nicht in Kombination mit der Weiterleitung von Touch-Ereignissen über „ QWaylandQuickItem::touchEventsEnabled “ oder „ sendFullTouchEvent “ verwendet werden, da dies zu Konflikten bei den Touch-IDs führen kann.

Gibt die Seriennummer für das „Touch-up“- oder „Touch-down“-Ereignis zurück.

[invokable] uint QWaylandSeat::sendTouchPointMoved(QWaylandSurface *surface, int id, const QPointF &position)

Sendet ein „Touch Moved“-Ereignis für den Berührungspunkt id auf surface mit der Position position.

Hinweis: Sie müssen ein „Touch-Frame“-Ereignis senden, wenn Sie mit dem Senden von Touch-Ereignissen fertig sind.

Warnung: Diese API sollte nicht in Kombination mit der Weiterleitung von Touch-Ereignissen über QWaylandQuickItem::touchEventsEnabled oder sendFullTouchEvent verwendet werden, da dies zu Konflikten bei den Touch-IDs führen kann.

Gibt die Seriennummer des Touch-Bewegungsereignisses zurück.

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

[invokable] uint QWaylandSeat::sendTouchPointPressed(QWaylandSurface *surface, int id, const QPointF &position)

Sendet ein „Touch-gedrückt“-Ereignis für den Berührungspunkt id auf surface mit der Position position.

Hinweis: Sie müssen ein Touch-Frame-Ereignis senden, wenn Sie mit dem Senden von Touch-Ereignissen fertig sind.

Warnung: Diese API sollte nicht in Kombination mit der Weiterleitung von Berührungsereignissen über QWaylandQuickItem::touchEventsEnabled oder sendFullTouchEvent verwendet werden, da dies zu Konflikten bei den Berührungs-IDs führen kann.

Gibt die Seriennummer für das „Touch-Down“-Ereignis zurück.

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

[invokable] uint QWaylandSeat::sendTouchPointReleased(QWaylandSurface *surface, int id, const QPointF &position)

Sendet ein „Touch-Released“-Ereignis für den Berührungspunkt id auf surface mit der Position position.

Hinweis: Sie müssen ein „Touch-Frame“-Ereignis senden, wenn Sie das Senden von Touch-Ereignissen abgeschlossen haben.

Warnung: Diese API sollte nicht in Kombination mit der Weiterleitung von Touch-Ereignissen über ` QWaylandQuickItem::touchEventsEnabled ` oder ` sendFullTouchEvent` verwendet werden, da dies zu widersprüchlichen Touch-IDs führen kann.

Gibt die Seriennummer für das „Touch-up“-Ereignis zurück.

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

[invokable, since 6.7] void QWaylandSeat::sendUnicodeKeyPressEvent(uint unicode)

Sendet ein Tastendruckereignis eines UCS4- unicode s über ein Texteingabeprotokoll.

Hinweis: Diese Funktion funktioniert nicht ordnungsgemäß, wenn der Client das vom Compositor unterstützte Texteingabeprotokoll nicht unterstützt.

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

Diese Funktion wurde in Qt 6.7 eingeführt.

Siehe auch „ sendKeyEvent “.

[invokable, since 6.7] void QWaylandSeat::sendUnicodeKeyReleaseEvent(uint unicode)

Sendet ein Tastenloslass-Ereignis eines UCS4- unicode s über ein Texteingabeprotokoll.

Hinweis: Diese Funktion funktioniert nicht ordnungsgemäß, wenn der Client das vom Compositor unterstützte Texteingabeprotokoll nicht unterstützt.

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

Diese Funktion wurde in Qt 6.7 eingeführt.

Siehe auch „ sendKeyEvent “.

bool QWaylandSeat::setKeyboardFocus(QWaylandSurface *surface)

Setzt den aktuellen Tastaturfokus auf surface. Gibt einen booleschen Wert zurück, der angibt, ob der Vorgang erfolgreich war.

Siehe auch keyboardFocus().

void QWaylandSeat::setMouseFocus(QWaylandView *view)

Setzt den aktuellen Mausfokus auf view.

Siehe auch mouseFocus().

QWaylandTouch *QWaylandSeat::touch() const

Gibt das Touch-Gerät für diese „ QWaylandSeat “ zurück.

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