QTouchEventSequence Class

class QTest::QTouchEventSequence

QTouchEventSequenceクラスは、一連のタッチイベントをシミュレートするために使用されます。詳細...

ヘッダー #include <QTouchEventSequence>
CMake: find_package(Qt6 REQUIRED COMPONENTS Test)
target_link_libraries(mytarget PRIVATE Qt6::Test)
qmake: QT += testlib

パブリック関数

virtual ~QTouchEventSequence()
virtual bool commit(bool processEvents = true)
QTest::QTouchEventSequence &move(int touchId, const QPoint &pt, QWindow *window = nullptr)
QTest::QTouchEventSequence &press(int touchId, const QPoint &pt, QWindow *window = nullptr)
QTest::QTouchEventSequence &release(int touchId, const QPoint &pt, QWindow *window = nullptr)
virtual QTest::QTouchEventSequence &stationary(int touchId)

詳細説明

ウィンドウまたはウィジェットの特定のデバイス上のタッチイベントのシーケンスをシミュレートするには、QTest::touchEvent を呼び出して QTouchEventSequence インスタンスを作成します。press ()、move ()、release ()、stationary ()を呼び出してタッチイベントをシーケンスに追加し、インスタンスをスコープアウトさせてシーケンスをイベントシステムにコミットします。

QTouchDevice *dev = QTest::createTouchDevice();
QWidget widget;

QTest::touchEvent(&widget, dev)
    .press(0, QPoint(10, 10));
QTest::touchEvent(&widget, dev)
    .stationary(0)
    .press(1, QPoint(40, 10));
QTest::touchEvent(&widget, dev)
    .move(0, QPoint(12, 12))
    .move(1, QPoint(45, 5));
QTest::touchEvent(&widget, dev)
    .release(0, QPoint(12, 12))
    .release(1, QPoint(45, 5));

メンバ関数ドキュメント

[virtual noexcept] QTouchEventSequence::~QTouchEventSequence()

autoCommitが無効になっていない限り、タッチイベントのシーケンスをコミットし、割り当てられたリソースを解放する。

[virtual] bool QTouchEventSequence::commit(bool processEvents = true)

このタッチイベントをイベントシステムにコミットし、配信後に受け入れられたかどうかを返す。

通常、この関数はデストラクタから呼び出されるため、呼び出す必要はありません。しかし、autoCommitが無効になっている場合、イベントは明示的にこの関数を呼び出したときのみコミットされます。この関数を明示的に呼び出すもうひとつの理由は、戻り値をチェックするためです。

特殊なケースでは、テストがイベントの処理を無効にしたい場合がある。これは、processEvents を false に設定することで実現できます。この場合、イベントは単にキューに入れられるだけで、イベントループが処理を強制されることはありません。

イベントループが強制的にイベントを処理することはありません。

QTest::QTouchEventSequence &QTouchEventSequence::move(int touchId, const QPoint &pt, QWindow *window = nullptr)

位置pt にあるタッチポイントtouchId の移動イベントをこのシーケンスに追加し、このQTouchEventSequence への参照を返す。

位置pt は、window からの相対位置として解釈される。window がヌルポインタの場合、pt は、このQTouchEventSequence のインスタンス化時に指定されたウィンドウからの相対位置として解釈される。

ユーザーがtouchId で識別される指を動かしたことをシミュレートする。

QTest::QTouchEventSequence &QTouchEventSequence::press(int touchId, const QPoint &pt, QWindow *window = nullptr)

位置pt にあるタッチポイントtouchId の押下イベントをこのシーケンスに追加し、このQTouchEventSequence への参照を返す。

位置ptwindow からの相対位置として解釈される。window がヌルポインタの場合、pt はこのQTouchEventSequence のインスタンス化時に指定されたウィンドウからの相対位置として解釈される。

ユーザーがtouchId で特定される指でタッチスクリーンまたはパッドを押したことをシミュレートする。

QTest::QTouchEventSequence &QTouchEventSequence::release(int touchId, const QPoint &pt, QWindow *window = nullptr)

位置pt にあるタッチポイントtouchId の解放イベントをこのシーケンスに追加し、このQTouchEventSequence への参照を返す。

pt の位置はwindow からの相対位置と解釈される。window がヌルポインタの場合、pt はこのQTouchEventSequence のインスタンス化時に指定されたウィンドウからの相対位置と解釈される。

ユーザーがtouchId で識別される指を持ち上げたことをシミュレートする。

[virtual] QTest::QTouchEventSequence &QTouchEventSequence::stationary(int touchId)

タッチポイントtouchId の静止イベントをこのシーケンスに追加し、このQTouchEventSequence への参照を返す。

touchId で特定された指をユーザーが動かさなかったことをシミュレートします。

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