QTest::QTouchEventSequence Class
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()
提交此触摸事件序列(除非已禁用自动提交功能),并释放已分配的资源。
[virtual]
bool QTouchEventSequence::commit(bool processEvents = true)
将此触摸事件提交到事件系统,并返回事件提交后是否被接受。
通常情况下无需调用此函数,因为它会从析构函数中调用。但是,如果禁用了自动提交功能,则只有在明确调用该函数时才会提交事件。明确调用该函数的另一个原因是检查返回值。
在特殊情况下,测试可能希望禁用事件处理。这可以通过将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 的引用。
pt 被解释为相对于window 的位置。如果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.