このページでは

QWaylandSeat Class

QWaylandSeat クラスは、キーボード、マウス、およびタッチ入力へのアクセスを提供します。詳細...

ヘッダー: #include <QWaylandSeat>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
QML内: WaylandSeat
継承元: QWaylandObject

パブリック型

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

プロパティ

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

パブリック関数

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

シグナル

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

静的パブリックメンバー

QWaylandSeat *fromSeatResource(struct wl_resource *resource)

詳細な説明

QWaylandSeat は、さまざまな種類のユーザー入力へのアクセスを提供し、キーボードのフォーカスとマウスポインタを管理します。これは、Wayland プロトコルにおける wl_seat インターフェースに対応しています。

メンバ型のドキュメント

enum QWaylandSeat::CapabilityFlag
flags QWaylandSeat::CapabilityFlags

この列挙型は、QWaylandSeat の機能を記述するものです。

定数定数値説明
QWaylandSeat::Pointer0x01QWaylandSeat はポインタ入力をサポートしています。
QWaylandSeat::Keyboard0x02定数値説明QWaylandSeat はポインタ入力をサポートしています。
QWaylandSeat::Touch0x04QWaylandSeat はタッチ入力をサポートしています。
QWaylandSeat::DefaultCapabilitiesPointer | Keyboard | TouchQWaylandSeat にはデフォルトの機能があります。

CapabilityFlags 型は、QFlags<CapabilityFlag> の typedef です。これは、CapabilityFlag 値の OR 結合を格納します。

プロパティのドキュメント

[read-only] drag : QWaylandDrag* const

このプロパティは、ドラッグ&ドロップ操作を管理し、操作の開始および終了時にシグナルを送信します。また、ユーザーがマウスカーソルをドラッグした際に、カーソルの下にどの画像を表示すべきかといった詳細情報を保持します。

アクセス関数:

QWaylandDrag *drag() const

[read-only] keymap : QWaylandKeymap* const

このプロパティには、キーマップオブジェクトが格納されます。

キーマップは、実際のキーのスキャンコードを意味のある値に変換する手段を提供します。たとえば、ノルウェー語レイアウトのキーマップを使用する場合、文字「L」の右にあるキーを押すと「Ø」が入力されます。

また、キーマップを使用すると、ControlキーとCAPS LOCKキーの機能を入れ替えるかどうかを指定するなど、キーの機能をカスタマイズすることもできます。

アクセス関数:

QWaylandKeymap *keymap()

メンバ関数のドキュメント

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

指定されたcompositor およびcapabilityFlags に対して、QWaylandSeatを構築します。

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

を破壊するQWaylandSeat

QWaylandSeat::CapabilityFlags QWaylandSeat::capabilities() const

このQWaylandSeat の機能フラグを返します。

QWaylandCompositor *QWaylandSeat::compositor() const

このQWaylandSeat のコンポジターを返します。

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

このシグナルは、クライアントが特定のsurface をマウスカーソルとして設定するよう要求した際に発せられます。たとえば、ユーザーが特定のサーフェスにカーソルを合わせ、カーソルをサイズ変更用の矢印に変更したい場合などです。

hotspotX とhotspotY はどちらも、ポインタサーフェスの左上隅からのオフセットであり、クリックが行われるべき位置を示します。たとえば、要求されたカーソルサーフェスが矢印の場合、これらのパラメータはそのサーフェス上の矢印の先端の位置を示します。

QWaylandDrag *QWaylandSeat::drag() const

このQWaylandSeat のドラッグオブジェクトを返します。

注: プロパティ `drag`のゲッター 関数です。

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

resource に対応するQWaylandSeat を返します。resource は、wl_seat型であることが想定されています。

[virtual] void QWaylandSeat::initialize()

コンストラクタ、または setCapabilities() を通じて設定された機能に応じて、シートの各部分を初期化します。

注:通常 、この関数はシートとコンポジターが作成された後に自動的に呼び出されるため、手動で呼び出す必要は通常ありません。

bool QWaylandSeat::isInitialized() const

QWaylandSeat が初期化されている場合は true を返し、そうでない場合は false を返します。

true という値は、クライアントがそのシートを利用できるようになったことを示します。

QWaylandKeyboard *QWaylandSeat::keyboard() const

この入力デバイスに対応するキーボードを返します。

QWaylandSurface *QWaylandSeat::keyboardFocus() const

キーボード入力に対して現在フォーカスされているサーフェスを返します。

setKeyboardFocus()も参照してください 。

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

このシグナルは、setKeyboardFocus() が呼び出されたときに発生します。

newFocus キーボードのフォーカスを受け取ったサーフェスを持ちます。フォーカスを受けているサーフェスがない場合は、nullptr となります。oldFocus は、キーボードのフォーカスを失ったサーフェスを持ちます。フォーカスを受けていたサーフェスがない場合は、nullptr となります。

QWaylandKeymap *QWaylandSeat::keymap()

このQWaylandSeat に対応するキーマップオブジェクトを返します。

注: プロパティ `keymap`のゲッター 関数です。

QWaylandView *QWaylandSeat::mouseFocus() const

現在マウスフォーカスが当たっているビューを返します。

setMouseFocus()も参照してください 。

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

このシグナルは、マウスのフォーカスが `oldFocus ` から `newFocus` へ変更されたときに発生します。

QWaylandPointer *QWaylandSeat::pointer() const

このQWaylandSeat のポインタデバイスを返します。

void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)

event をキーボードデバイスに送信します。

注: event は 、現在のマッピングにおける実際のキーボードキーに対応している必要があります。例えば、Qt::Key_Exclam は通常、独立したキーではありません。ほとんどのキーボードでは、感嘆符はShift + 1で入力されます。その場合、感嘆符のキー押下イベントを送信するには、QKeyEvent(QEvent::KeyPress, Qt::Key_1, Qt::ShiftModifier) を使用してください。

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

event を、タッチデバイス上の指定されたsurface に送信します。

警告:このAPIは 、QEventPoint::id()をクライアントに送信する前に、自動的に連番のIDにマッピングします。そのため、明示的なIDを使用する他のAPIと組み合わせて使用すると、IDの重複が発生する可能性があるため、併用しないでください。

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

キーqtKey のキー押下イベント(pressed がtrue の場合)またはキー離しイベント(pressed がfalse の場合)を、キーボードデバイスに送信します。

注:この関数は 、Qt::Key_Exclam など、修飾キーを必要とするキーイベントには対応していません。その場合は、代わりにsendFullKeyEvent を使用してください。

注:この関数は 、メタオブジェクトシステムを介して、またはQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

void QWaylandSeat::sendKeyPressEvent(uint code)

キー「code 」のキー押下イベントをキーボードデバイスに送信します。

void QWaylandSeat::sendKeyReleaseEvent(uint code)

キーcode を含むキーリリースイベントをキーボードデバイスに送信します。

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

view にマウスフォーカスを設定し、ローカル位置localPos および出力空間位置outputSpacePos を持つマウス移動イベントをポインタデバイスに送信します。

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

button に対するマウスクリックイベントを、QWaylandSeat のポインタデバイスに送信します。

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

button に対するマウスリリースイベントを、QWaylandSeat のポインタデバイスに送信します。

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

指定されたorientation およびdelta を使用して、QWaylandSeat のポインタデバイスにマウスホイールイベントを送信します。

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

client のタッチデバイスにキャンセルイベントを送信します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

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

client のタッチデバイスに対してフレームイベントを送信し、一連のタッチアップ、タッチダウン、およびモーションイベントの終了を通知します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

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

指定されたid 、point 、state を使用して、タッチデバイス上のsurface にタッチポイントイベントを送信します。

警告:この API は、QWaylandQuickItem::touchEventsEnabled またはsendFullTouchEvent を使用したタッチイベントの転送と組み合わせて使用しないでください。タッチ ID の競合を引き起こす可能性があります。

タッチアップまたはタッチダウンイベントのシリアル番号を返します。

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

surface 上の、位置position にあるタッチポイントid に対して、タッチ移動イベントを送信します。

注: タッチイベントの送信が完了したら、タッチフレームイベントを送信する必要があります 。

警告:この API は、QWaylandQuickItem::touchEventsEnabled またはsendFullTouchEvent を使用したタッチイベントの転送と組み合わせて使用しないでください。タッチ ID の競合が発生する可能性があります。

タッチモーションイベントのシリアル番号を返します。

注:この関数は 、メタオブジェクトシステムおよび QML から呼び出すことができます。Q_INVOKABLE を参照してください。

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

surface 上の位置position にあるタッチポイントid に対して、タッチ押下イベントを送信します。

注: タッチイベントの送信が完了したら、タッチフレームイベントを送信する必要があります 。

警告:この API は、QWaylandQuickItem::touchEventsEnabled またはsendFullTouchEvent を使用したタッチイベントの転送と組み合わせて使用しないでください。タッチ ID の競合を引き起こす可能性があります。

タッチダウンイベントのシリアル番号を返します。

注:この関数は 、メタオブジェクトシステムを介して、また QML から呼び出すことができます。Q_INVOKABLE を参照してください。

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

surface 上のタッチポイントid (位置:position )に対して、タッチリリースイベントを送信します。

注: タッチイベントの送信が完了したら、タッチフレームイベントを送信する必要があります 。

警告:この API は、QWaylandQuickItem::touchEventsEnabled またはsendFullTouchEvent を使用したタッチイベントの転送と組み合わせて使用しないでください。タッチ ID の競合を引き起こす可能性があります。

タッチアップイベントのシリアルを返します。

注:この関数は 、メタオブジェクトシステムおよび QML から呼び出すことができます。Q_INVOKABLE を参照してください。

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

テキスト入力プロトコルを介して、UCS4のunicode のキー押下イベントを送信します。

注: クライアントがコンポジターがサポートするテキスト入力プロトコルをサポートしていない場合、この関数は 正常に動作しません。

注:この関数は 、メタオブジェクトシステムを介して、および QML から呼び出すことができます。Q_INVOKABLE を参照してください。

この関数は Qt 6.7 で導入されました。

sendKeyEventも参照してください 。

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

テキスト入力プロトコルを介して、UCS4のunicode のキーリリースイベントを送信します。

注: クライアントがコンポジターがサポートするテキスト入力プロトコルをサポートしていない場合、この関数は 正常に動作しません。

注:この関数は 、メタオブジェクトシステムを介して、および QML から呼び出すことができます。Q_INVOKABLE を参照してください。

この関数は Qt 6.7 で導入されました。

sendKeyEventも参照してください 。

bool QWaylandSeat::setKeyboardFocus(QWaylandSurface *surface)

現在のキーボードフォーカスをsurface に設定します。操作が成功したかどうかを示すブール値を返します。

keyboardFocus()も参照してください 。

void QWaylandSeat::setMouseFocus(QWaylandView *view)

現在のマウスフォーカスを `view` に設定します。

mouseFocus()も参照してください 。

QWaylandTouch *QWaylandSeat::touch() const

このQWaylandSeat に対応するタッチデバイスを返します。

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