如何使用Qt模拟鼠标事件?

时间:2013-12-15 08:01:14

标签: c++ qt mouseevent

我想用Qt模拟鼠标事件。例如,当我按下键盘上的一个键时,程序可以模拟鼠标单击事件。我已经尝试了下面的代码,但是当我按下'K'时,程序停止并给我一个错误:

The program has unexpectedly finished.     

    case Qt::Key_K:
        QMouseEvent *mEvnPress;
        QMouseEvent *mEvnRelease;
        mEvnPress = new QMouseEvent(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
        mEvnRelease = new QMouseEvent(QEvent::MouseButtonRelease, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
        QCoreApplication::sendEvent(QWidget::focusWidget(),mEvnPress);
        QCoreApplication::sendEvent(QWidget::focusWidget(),mEvnRelease);
        break;
    

2 个答案:

答案 0 :(得分:2)

QtTestLib。它专为编写测试而设计,mouseClick可以满足您的需要。

如果您不想使用此模块,您可以随时查看其源代码,并了解如何正确模拟鼠标事件。

答案 1 :(得分:0)

您必须使用QtestEventList课程。添加addmouseclick的事件,然后进行模拟。