QTouchEventSequence 类
class QTest::QTouchEventSequenceQTouchEventSequence 类用于模拟一系列触摸事件。更多...
头文件 | #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)
将触摸点 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 公司及其全球子公司和关联公司的 商标。所有其他商标均为其各自所有者的财产。