C++ 如何在Linux和Windows上运行的Qt中模拟所有鼠标和键盘事件?
问题:我有一个设备可以向我发送一些命令(例如:1,2,3,…),我想根据Linux操作系统和Windows操作系统中接收到的命令模拟鼠标和键盘事件 我使用的是C++ 如何在Linux和Windows上运行的Qt中模拟所有鼠标和键盘事件?,c++,linux,windows,qt,C++,Linux,Windows,Qt,问题:我有一个设备可以向我发送一些命令(例如:1,2,3,…),我想根据Linux操作系统和Windows操作系统中接收到的命令模拟鼠标和键盘事件 我使用的是boolqcoreapplication::postEvent(QObject*receiver,QEvent*event,int priority=Qt::NormalEventPriority),但我不知道传递给它的是什么接收器,我对它的MouseMove操作有问题 我发现这在linux操作系统中效果很好,但在Windows操作系统中我
boolqcoreapplication::postEvent(QObject*receiver,QEvent*event,int priority=Qt::NormalEventPriority)
,但我不知道传递给它的是什么接收器,我对它的MouseMove
操作有问题
我发现这在linux操作系统中效果很好,但在Windows操作系统中我对这种帮助方法有问题。
有什么方法在两种操作系统中都有效吗
感谢您的关注。您可以通过以下方式设置鼠标位置:
QCursor::setPos(QPoint(10,10));
还可以通过以下方式进行鼠标点击模拟:
QMouseEvent * event1 = new QMouseEvent ((QEvent::MouseButtonPress), QPoint(10,10),
Qt::LeftButton,
Qt::LeftButton,
Qt::NoModifier );
qApp->postEvent((QObject*)myWidget,(QEvent *)event1);
QMouseEvent * event2 = new QMouseEvent ((QEvent::MouseButtonRelease), QPoint(10,10),
Qt::LeftButton,
Qt::LeftButton,
Qt::NoModifier );
qApp->postEvent((QObject*)myWidget,(QEvent *)event2);
向小部件发送关键事件类似于:
QKeyEvent *event = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier);
QCoreApplication::postEvent (myWidget, event);