Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在Linux和Windows上运行的Qt中模拟所有鼠标和键盘事件?_C++_Linux_Windows_Qt - Fatal编程技术网

C++ 如何在Linux和Windows上运行的Qt中模拟所有鼠标和键盘事件?

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操作系统中我

问题:我有一个设备可以向我发送一些命令(例如:1,2,3,…),我想根据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);