QTestEventList Class

QTestEventList 类提供了 GUI 事件列表。更多

Header: #include <QTestEventList>
CMake: find_package(Qt6 REQUIRED COMPONENTS Test)
target_link_libraries(mytarget PRIVATE Qt6::Test)
qmake: QT += testlib
继承: QList

公共函数

QTestEventList()
QTestEventList(const QTestEventList &other)
~QTestEventList()
void addDelay(int msecs)
void addKeyClick(Qt::Key qtKey, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)
void addKeyClick(char ascii, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)
void addKeyClicks(const QString &keys, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)
void addKeyPress(Qt::Key qtKey, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)
void addKeyPress(char ascii, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)
void addKeyRelease(Qt::Key qtKey, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)
void addKeyRelease(char ascii, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)
void addMouseClick(Qt::MouseButton button, Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void addMouseDClick(Qt::MouseButton button, Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void addMouseMove(QPoint pos = QPoint(), int delay = -1)
void addMousePress(Qt::MouseButton button, Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void addMouseRelease(Qt::MouseButton button, Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void clear()
void simulate(QWidget *w)

详细说明

QTestEventList 可填充 GUI 事件,这些事件可存储为测试数据以供日后使用,或在任何QWidget 上重放。QTestEventList 提供了用于填充列表的方便函数。

示例

QTestEventList events;
events.addKeyClick('a');
events.addKeyClick(Qt::Key_Backspace);
events.addDelay(200);
QLineEdit *lineEdit = new QLineEdit(myParent);
// ...
events.simulate(lineEdit);
events.simulate(lineEdit);

上面的示例模拟用户输入字符a ,然后输入退格键,等待 200 毫秒并重复输入。

成员函数文档

QTestEventList::QTestEventList()

构造一个空的 QTestEventList。

QTestEventList::QTestEventList(const QTestEventList &other)

构造一个新的 QTestEventList,作为other 的副本。

[noexcept] QTestEventList::~QTestEventList()

清空列表并销毁所有存储的事件。

void QTestEventList::addDelay(int msecs)

添加msecs 毫秒延迟。

另请参阅 QTest::qWait().

void QTestEventList::addKeyClick(Qt::Key qtKey, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)

在列表中添加新的按键点击。该事件将用修改器modifiers 模拟按键qtKey ,然后等待msecs 毫秒。

另请参阅 QTest::keyClick() 。

void QTestEventList::addKeyClick(char ascii, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)

这是一个重载函数。

向列表中添加一个新的按键点击。事件将用修改器modifiers 模拟按键ascii ,然后等待msecs 毫秒。

另请参阅 QTest::keyClick() 。

void QTestEventList::addKeyClicks(const QString &keys, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)

向列表中添加新的键盘条目。该事件将用modifierskeys ,每个键之间等待msecs 毫秒。

另请参阅 QTest::keyClicks() 。

void QTestEventList::addKeyPress(Qt::Key qtKey, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)

在列表中添加新的按键。事件将按下带有修改器modifiers 的按键qtKey ,然后等待msecs 毫秒。

另请参阅 QTest::keyPress() 。

void QTestEventList::addKeyPress(char ascii, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)

这是一个重载函数。

在列表中添加一个新的按键。事件将按下带有修饰符modifiers 的按键ascii ,然后等待msecs 毫秒。

另请参阅 QTest::keyPress() 。

void QTestEventList::addKeyRelease(Qt::Key qtKey, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)

向列表中添加新的密钥释放。该事件将释放带有修改器modifiers 的按键qtKey ,然后等待msecs 毫秒。

另请参阅 QTest::keyRelease() 。

void QTestEventList::addKeyRelease(char ascii, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1)

这是一个重载函数。

向列表中添加一个新的密钥释放事件。事件将使用修改器modifiers 释放按键ascii ,然后等待msecs 毫秒。

另请参阅 QTest::keyRelease() 。

void QTestEventList::addMouseClick(Qt::MouseButton button, Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)

在列表中添加鼠标点击。事件将点击button ,可选modifiers ,位置pos ,可选delay 。默认位置是 widget 的中心。

另请参阅 QTest::mouseClick() 。

void QTestEventList::addMouseDClick(Qt::MouseButton button, Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)

在列表中添加鼠标双击。该事件将双击button ,可选modifiers ,位置pos ,可选delay 。默认位置是 widget 的中心。

另请参阅 QTest::mousePress() 。

void QTestEventList::addMouseMove(QPoint pos = QPoint(), int delay = -1)

将鼠标移动添加到列表中。事件将把鼠标移动到pos 的位置。如果设置了delay (毫秒),测试将在移动鼠标后等待。默认位置是 widget 的中心。

另请参阅 QTest::mousePress() 。

void QTestEventList::addMousePress(Qt::MouseButton button, Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)

在列表中添加鼠标按下事件。该事件将按下button ,可选modifiers ,位置pos ,可选delay 。默认位置是 widget 的中心。

另请参阅 QTest::mousePress() 。

void QTestEventList::addMouseRelease(Qt::MouseButton button, Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)

在列表中添加鼠标释放事件。该事件将在位置pos 释放button ,可选modifiers ,可选delay 。默认位置是 widget 的中心。

另请参阅 QTest::mouseRelease() 。

void QTestEventList::clear()

删除列表中的所有事件。

void QTestEventList::simulate(QWidget *w)

在小部件w 上逐一模拟列表中的事件。有关示例,请阅读QTestEventList 类文档。

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