QWaylandSeat Class

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

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

この enum 型はQWaylandSeat の能力を記述します。

定数説明
QWaylandSeat::Pointer0x01QWaylandSeat はポインタ入力をサポートします。
QWaylandSeat::Keyboard0x02QWaylandSeat はキーボード入力をサポートする。
QWaylandSeat::Touch0x04QWaylandSeat はタッチ入力をサポートしています。
QWaylandSeat::DefaultCapabilitiesPointer | Keyboard | TouchQWaylandSeat はデフォルトの能力を持つ。

CapabilityFlags型はQFlags<CapabilityFlag>のtypedefである。これは、CapabilityFlag値のORの組み合わせを格納する。

プロパティ Documentation

[read-only] drag : QWaylandDrag* const

このプロパティは、ドラッグ&ドロップ操作を保持し、それらの開始時と終了時にシグナルを送信します。このプロパティには、ユーザーがドラッグしたときに、マウスカーソルの下にどの画像があるべきかというような詳細が格納される。

アクセス関数

QWaylandDrag *drag() const

[read-only] keymap : QWaylandKeymap* const

このプロパティは、キーマップ・オブジェクトを保持します。

キーマップは、実際のキースキャンコードを意味のある値に変換する方法を提供します。例えば、ノルウェー語レイアウトのキーマップを使用する場合、文字Lの右側のキーはØを生成します。

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

関数にアクセスする:

QWaylandKeymap *keymap()

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

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

与えられたcompositorcapabilityFlags に対して 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 をマウスカーソルにするよう要求したときに発せられます。例えば、ユーザーが特定のサーフェスの上にカーソルを置いたときに、カーソルをリサイズ矢印に変更したい場合などです。

hotspotXhotspotY はどちらも、クリックが起こるべきポインタ面の左上からのオフセットです。例えば、要求されたカーソル面が矢印の場合、パラメータは矢印の先端がその面のどこにあるかを示します。

QWaylandDrag *QWaylandSeat::drag() const

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

注: プロパティドラッグのゲッター関数です。

[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)

タッチデバイスの指定されたsurfaceevent を送信します。

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

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

キーの押下(pressedtrue の場合)または離鍵(pressedfalse の場合)イベントを、キーボード・デバイスにqtKey 送信する。

注意: この関数は、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)

orientationdelta を指定して、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)

指定されたidpointstate のタッチデバイスのsurface にタッチポイントイベントを送信します。

警告 このAPIはQWaylandQuickItem::touchEventsEnabledsendFullTouchEvent を使ったタッチイベントの転送と併用しないでください。

touch upまたはtouch downイベントのシリアルを返します。

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

surface 上のタッチポイントid のタッチ移動イベントをposition の位置で送信します。

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

警告 このAPIは、QWaylandQuickItem::touchEventsEnabled またはsendFullTouchEvent を使用したタッチイベントの転送と組み合わせて使用しないでください。

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

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照。

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

surface 上のタッチポイントid の押されたタッチイベントをposition の位置で送信します。

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

警告 このAPIは、QWaylandQuickItem::touchEventsEnabled またはsendFullTouchEvent を使用したタッチイベントの転送と組み合わせて使用しないでください。

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

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照。

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

surface 上のタッチポイントid に対して、position の位置で touch released イベントを送信します。

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

警告 このAPIは、QWaylandQuickItem::touchEventsEnabled またはsendFullTouchEvent を使用したタッチイベントの転送と組み合わせて使用しないでください。

touch upイベントのシリアルを返す。

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照。

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

UCS4unicode のキー押下イベントをテキスト入力プロトコルで送信します。

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

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

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

sendKeyEventも参照してください

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

UCS4unicode のキーリリースイベントをテキスト入力プロトコルで送信します。

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

注意 :この関数はメタオブジェクトシステムや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 のタッチデバイスを返します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。