本页内容

QTestEventList Class

QTestEventList 类提供了一个 GUI 事件列表。更多内容...

头文件: #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)

将一个新的按键点击事件添加到列表中。该事件将模拟按下qtKey 键并同时按下modifiers 修饰键,然后等待msecs 毫秒。

另请参阅 QTest::keyClick()。

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

将一个新的按键点击事件添加到列表中。该事件将模拟按下ascii 键并同时按下modifiers 修饰键,然后等待msecs 毫秒。

这是一个重载函数。

另请参阅 QTest::keyClick()。

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

将新的键盘输入项添加到列表中。该事件将按下keys ,使用modifiers ,并在每次按键之间等待msecs 毫秒。

另请参阅 QTest::keyClicks()。

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

将一个新的按键操作添加到列表中。该事件将按下键qtKey 并配合修饰键modifiers ,然后等待msecs 毫秒。

另请参阅 QTest::keyPress()。

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

将一个新的按键事件添加到列表中。该事件将按下键ascii (修饰键为modifiers ),然后等待msecs 毫秒。

这是一个重载函数。

另请参阅 QTest::keyPress()。

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

将一个新的键释放事件添加到列表中。该事件将释放键qtKey 及其修饰键modifiers ,然后等待msecs 毫秒。

另请参阅 QTest::keyRelease()。

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

将一个新的键释放事件添加到列表中。该事件将释放键ascii 及其修饰键modifiers ,然后等待msecs 毫秒。

这是一个重载函数。

另请参阅 QTest::keyRelease()。

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

向列表中添加一个鼠标点击事件。该事件将点击button ,并可选地使用modifiers ,点击位置为pos ,并可选地使用delay 。默认位置为控件的中心。

另请参阅 QTest::mouseClick()。

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

向列表中添加双击操作。该事件将在坐标pos 处对button 进行双击,可选参数modifiers ,并可选参数delay 。默认位置为控件的中心。

另请参阅 QTest::mousePress()。

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

将鼠标移动事件添加到列表中。该事件会将鼠标移动到位置pos 。如果设置了delay (单位为毫秒),则鼠标移动完成后,测试将等待该时间。默认位置为控件的中心。

另请参阅 QTest::mousePress()。

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

将鼠标点击事件添加到列表中。该事件将在坐标pos 处(可选坐标modifiers )点击button 控件,并可选地设置delay 。默认位置为控件的中心。

另请参阅 QTest::mousePress()。

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

将鼠标释放事件添加到列表中。该事件将在位置pos 处释放button ,并可选地设置modifiers ,同时可选地设置delay 。默认位置为控件的中心。

另请参阅 QTest::mouseRelease()。

void QTestEventList::clear()

从列表中删除所有事件。

void QTestEventList::simulate(QWidget *w)

在控件w 上依次模拟列表中的事件。有关示例,请参阅QTestEventList 类的文档。

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