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
Ö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 “.
| Konstante | Wert | Beschreibung |
|---|---|---|
QWaylandSeat::Pointer | 0x01 | Das QWaylandSeat unterstützt die Eingabe über Zeiger. |
QWaylandSeat::Keyboard | 0x02 | Das „ QWaylandSeat “ unterstützt die Tastatureingabe. |
QWaylandSeat::Touch | 0x04 | Das „ QWaylandSeat “ unterstützt die Touch-Eingabe. |
QWaylandSeat::DefaultCapabilities | Pointer | Keyboard | Touch | Der „ 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.