QTest::QTouchEventSequence Class
class QTest::QTouchEventSequenceQTouchEventSequence クラスは、一連のタッチイベントをシミュレートするために使用されます。詳細...
| ヘッダー: | #include <qtestsupport_gui.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Test) target_link_libraries(mytarget PRIVATE Qt6::Test) |
| qmake: | QT += testlib |
| 継承元: |
パブリック関数
| virtual | ~QTouchEventSequence() |
(since 6.12) bool | cancel(bool processEvents = true) |
| 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が無効にされていない限り、この一連のタッチイベントをコミットし、割り当てられたリソースを解放します。
[since 6.12] bool QTouchEventSequence::cancel(bool processEvents = true)
シーケンスの対象デバイスに対してタッチキャンセルを実行し、それが受け入れられたかどうかを返します。processEvents がtrue (デフォルト)の場合、その後イベントループが実行されます。
コンポジターなどによってタッチシーケンスがキャンセルされたことをシミュレートします。ステージング済みでまだコミットされていないポイントは破棄され、キャンセル後は新しい押下のみが可能となるため、記憶されていたポイントも破棄されます。
この関数は Qt 6.12 で導入されました。
[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 が null ポインタである場合、pt は、このQTouchEventSequence をインスタンス化する際に指定されたウィンドウに対する相対位置として解釈されます。
touchId で指定された指をユーザーが動かしたかのようにシミュレートします。
QTest::QTouchEventSequence &QTouchEventSequence::press(int touchId, const QPoint &pt, QWindow *window = nullptr)
位置pt にあるタッチポイントtouchId に対するプレスイベントをこのシーケンスに追加し、このQTouchEventSequence への参照を返します。
位置pt は、window に対する相対位置として解釈されます。window が null ポインタである場合、pt は、このQTouchEventSequence をインスタンス化する際に指定されたウィンドウに対する相対位置として解釈されます。
touchId で指定された指で、ユーザーがタッチスクリーンまたはタッチパッドを押したかのようにシミュレートします。
QTest::QTouchEventSequence &QTouchEventSequence::release(int touchId, const QPoint &pt, QWindow *window = nullptr)
このシーケンスに、位置pt にあるタッチポイントtouchId のリリースイベントを追加し、このQTouchEventSequence への参照を返します。
位置pt は、window に対する相対位置として解釈されます。window が null ポインタである場合、pt は、このQTouchEventSequence をインスタンス化時に指定されたウィンドウに対する相対位置として解釈されます。
touchId で指定された指をユーザーが離したかのようにシミュレートします。
[virtual] QTest::QTouchEventSequence &QTouchEventSequence::stationary(int touchId)
このシーケンスに、タッチポイント `touchId ` に対する静的イベントを追加し、この `QTouchEventSequence` への参照を返します。
touchId で識別される指をユーザーが動かさなかったことをシミュレートします。
© 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.