QWaylandSeat Class

Die Klasse QWaylandSeat ermöglicht den Zugriff auf Tastatur-, Maus- und Berührungseingaben. Mehr...

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

Detaillierte Beschreibung

Der QWaylandSeat bietet Zugriff auf verschiedene Arten von Benutzereingaben und verwaltet einen Tastaturfokus und einen Mauszeiger. Er entspricht der wl_seat-Schnittstelle im Wayland-Protokoll.

Dokumentation der Mitgliedstypen

enum QWaylandSeat::CapabilityFlag
flags QWaylandSeat::CapabilityFlags

Dieser Enum-Typ beschreibt die Fähigkeiten eines QWaylandSeat.

KonstanteWertBeschreibung
QWaylandSeat::Pointer0x01Der QWaylandSeat unterstützt Zeigereingaben.
QWaylandSeat::Keyboard0x02Die QWaylandSeat unterstützt Tastatureingaben.
QWaylandSeat::Touch0x04Die QWaylandSeat unterstützt Touch-Eingaben.
QWaylandSeat::DefaultCapabilitiesPointer | Keyboard | TouchDie QWaylandSeat hat die Standard-Fähigkeiten.

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

Dokumentation der Eigenschaften

[read-only] drag : QWaylandDrag* const

Diese Eigenschaft speichert die Zieh- und Ablegeoperationen und sendet Signale, wenn sie beginnen und enden. Die Eigenschaft speichert Details wie das Bild, das 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 Tastaturbelegung bietet eine Möglichkeit, tatsächliche Tasten-Scancodes in einen sinnvollen Wert zu übersetzen. Wenn Sie beispielsweise eine Tastaturbelegung mit einem norwegischen Layout verwenden, ergibt die Taste rechts neben dem Buchstaben L ein Ø.

Tastenzuordnungen können auch verwendet werden, um Tastenfunktionen anzupassen, z. B. um festzulegen, ob Control und CAPS-Lock vertauscht werden sollen, usw.

Zugriff auf Funktionen:

QWaylandKeymap *keymap()

Dokumentation der Mitgliedsfunktionen

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

Konstruiert einen QWaylandSeat für die angegebenen compositor und capabilityFlags.

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

Zerstört die QWaylandSeat

QWaylandSeat::CapabilityFlags QWaylandSeat::capabilities() const

Gibt die Fähigkeitsflags für diese QWaylandSeat zurück.

QWaylandCompositor *QWaylandSeat::compositor() const

Gibt den Compositor für diesen QWaylandSeat zurück.

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

Dieses Signal wird ausgesendet, wenn der Client eine bestimmte surface als Mauszeiger angefordert hat. Zum Beispiel, wenn der Benutzer den Mauszeiger über eine bestimmte Fläche bewegt und Sie möchten, dass sich der Mauszeiger in einen Größenänderungspfeil verwandelt.

Sowohl hotspotX als auch hotspotY sind Offsets von der linken oberen Ecke einer Zeigerfläche, wo ein Klick stattfinden soll. Handelt es sich bei der angeforderten Cursorfläche beispielsweise um einen Pfeil, geben die Parameter an, wo sich die Spitze des Pfeils 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 die QWaylandSeat zurück, die der resource entspricht. Von der resource wird erwartet, dass sie den Typ wl_seat hat.

[virtual] void QWaylandSeat::initialize()

Initialisiert die Teile des Sitzes, die den im Konstruktor oder durch setCapabilities() festgelegten Fähigkeiten entsprechen.

Hinweis: Normalerweise wird diese Funktion automatisch aufgerufen, nachdem der Sitz und der Compositor erstellt worden sind, so dass 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 zeigt an, dass der Sitz nun von den Clients genutzt werden kann.

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 ausgegeben, wenn setKeyboardFocus() aufgerufen wird.

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

QWaylandKeymap *QWaylandSeat::keymap()

Gibt das Keymap-Objekt für dieses QWaylandSeat zurück.

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

QWaylandView *QWaylandSeat::mouseFocus() const

Gibt die Ansicht zurück, die derzeit den Mausfokus hat.

Siehe auch setMouseFocus().

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

Dieses Signal wird ausgegeben, wenn der Mausfokus von oldFocus auf newFocus gewechselt hat.

QWaylandPointer *QWaylandSeat::pointer() const

Gibt das Zeigergerät für dieses QWaylandSeat zurück.

void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)

Sendet die event an das Tastaturgerät.

Hinweis: event sollte einer tatsächlichen Tastaturtaste in der aktuellen Belegung entsprechen. Zum Beispiel ist Qt::Key_Exclam normalerweise keine separate Taste: Bei den meisten Tastaturen wird das Ausrufezeichen mit Shift + 1 erzeugt. Um in diesem Fall ein Ausrufezeichen-Tastendruckereignis zu senden, verwenden Sie QKeyEvent(QEvent::KeyPress, Qt::Key_1, Qt::ShiftModifier).

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

Sendet die event an die angegebene surface auf dem Touch-Gerät.

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

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

Sendet ein Tastendruckereignis (wenn pressed gleich true ist) oder ein Loslassereignis (wenn pressed gleich false ist) einer Taste qtKey an das Tastaturgerät.

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

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

void QWaylandSeat::sendKeyPressEvent(uint code)

Sendet ein Tastendruckereignis mit der Taste code an das Tastaturgerät.

void QWaylandSeat::sendKeyReleaseEvent(uint code)

Sendet ein Tastenfreigabeereignis mit der Taste 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 Zeigergerät mit der lokalen Position localPos und der Ausgangsraumposition outputSpacePos.

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

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

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

Sendet ein Mausfreigabe-Ereignis für button an das Zeigergerät von QWaylandSeat.

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

Sendet ein Mausrad-Ereignis an das Zeigergerät von QWaylandSeat mit den angegebenen orientation und delta.

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

Sendet ein Abbruchereignis an das Touch-Gerät eines client.

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

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

Sendet ein Frame-Ereignis an das Touch-Device eines client, um das Ende einer Reihe von Touch-Up-, Down- und Motion-Events anzuzeigen.

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

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

Sendet ein Berührungspunkt-Ereignis an die surface auf einem Touch-Gerät mit den angegebenen id, point und state.

Warnung: Diese API sollte nicht in Kombination mit der Weiterleitung von Berührungsereignissen über QWaylandQuickItem::touchEventsEnabled oder sendFullTouchEvent verwendet werden, da dies zu widersprüchlichen Berührungskennungen führen kann.

Gibt die Serie für das Ereignis "Touch up" oder "Touch down" zurück.

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

Sendet ein Berührungsbewegungsereignis für den Berührungspunkt id auf surface mit der Position position.

Hinweis: Sie müssen ein Berührungsrahmenereignis senden, wenn Sie mit dem Senden von Berührungsereignissen fertig sind.

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

Gibt die Serie für das Berührungsereignis zurück.

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

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

Sendet ein "Touch pressed"-Ereignis für den Berührungspunkt id auf surface mit der Position position.

Hinweis: Sie müssen ein Berührungsrahmenereignis senden, wenn Sie mit dem Senden von Berührungsereignissen fertig sind.

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

Gibt die Serie für das Touchdown-Ereignis zurück.

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

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

Sendet ein Ereignis "Berührung freigegeben" für den Berührungspunkt id auf surface mit der Position position.

Hinweis: Sie müssen ein Berührungsrahmenereignis senden, wenn Sie mit dem Senden von Berührungsereignissen fertig sind.

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

Gibt die Seriennummer für das Berührungsereignis zurück.

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

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

Sendet ein Tastendruckereignis eines UCS4 unicode über ein Texteingabeprotokoll.

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

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus 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 Tastenfreigabeereignis eines UCS4 unicode über ein Texteingabeprotokoll.

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

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus 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 dieses QWaylandSeat zurück.

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