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
Ö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.
Konstante | Wert | Beschreibung |
---|---|---|
QWaylandSeat::Pointer | 0x01 | Der QWaylandSeat unterstützt Zeigereingaben. |
QWaylandSeat::Keyboard | 0x02 | Die QWaylandSeat unterstützt Tastatureingaben. |
QWaylandSeat::Touch | 0x04 | Die QWaylandSeat unterstützt Touch-Eingaben. |
QWaylandSeat::DefaultCapabilities | Pointer | Keyboard | Touch | Die 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.