使用Qt框架生成鼠标事件



我使用的是Qt框架,我想在应用程序窗口外生成鼠标事件。

到目前为止,我设法使用移动鼠标指针

QGuiApplication::overrideCursor()->setPos(x,y);

如何生成鼠标左键单击、中键单击、右键单击和鼠标滚轮移动?

Qt没有办法做到这一点。使用特定于目标平台的API。

几年前,我编写了一个GUI测试驱动程序(用于鼠标和键盘)。驱动程序是为Windows、Linux和MacOSX开发的。您可以在这里查看。Windows有一个依赖于操作系统的MouseDriver实现。您还可以看到其他实现。这是一个开源项目,你可以免费使用它的代码。

添加到第一个答案。例如在Windows:中

点击:

mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP,x,y,0,0);

轮子:

mouse_event(MOUSEEVENTF_WHEEL, 0, 0, WHEEL_DELTA, NULL);

更多信息:http://msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx

也可使用qt宏:

#ifdef Q_WS_X11
//Linux
#endif
#ifdef Q_WS_WIN
//Windows
#endif
#ifdef Q_WS_MACX
//Mac
#endif

有关宏的详细信息:http://qt-project.org/doc/qt-5/qtglobal.html

QSysInfo:http://qt-project.org/doc/qt-5/qsysinfo.html

相关内容

  • 没有找到相关文章

最新更新