QTouchEventSequence 类

class QTest::QTouchEventSequence

QTouchEventSequence 类用于模拟一系列触摸事件。更多...

头文件 #include <QTouchEventSequence>
CMakefind_package(Qt6 REQUIRED COMPONENTS Test)
target_link_libraries(mytarget PRIVATE Qt6::Test)
qmakeQT += testlib

公共函数

virtual~QTouchEventSequence()
virtual boolcommit(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)

将触摸点 touchId 在位置 pt 的移动事件添加到此序列,并返回对此 QTouchEventSequence 的引用。

位置 pt 被解释为相对于 window。如果 window 是空指针,则 pt 被解释为相对于创建此 QTouchEventSequence 时提供的窗口。

模拟用户移动了由 touchId 标识的手指。

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

将触摸点 touchId 在位置 pt 的按下事件添加到此序列,并返回对此 QTouchEventSequence 的引用。

位置 pt 被解释为相对于 window。如果 window 是空指针,则 pt 被解释为相对于创建此 QTouchEventSequence 时提供的窗口。

模拟用户用由 touchId 标识的手指按下了触摸屏或平板。

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

将触摸点 touchId 在位置 pt 的释放事件添加到此序列,并返回对此 QTouchEventSequence 的引用。

位置 pt 被解释为相对于 window。如果 window 是空指针,则 pt 被解释为相对于创建此 QTouchEventSequence 时提供的窗口。

模拟用户抬起了由 touchId 标识的手指。

[虚拟] QTest::QTouchEventSequence &QTouchEventSequence::stationary(int touchId)

将触摸点 touchId 的静态事件添加到此序列,并返回对此 QTouchEventSequence 的引用。

模拟用户没有移动由 touchId 标识的手指。

© 2024 Qt 公司有限公司。本文档包含的贡献属于其各自的所有者。本文档按自由软件基金会发布的 GNU 自由文档许可协议版本 1.3 的条款提供许可。Qt 及相关标志是芬兰的 Qt 公司及其全球子公司和关联公司的 商标。所有其他商标均为其各自所有者的财产。