想用QT实现一个很简单的功能:自动获取鼠标坐标,结果因为第一次用QT各种踩坑。

首先增加mouseMoveEvent鼠标事件如下,本以为这样就结束了。

void MoveMouse::mouseMoveEvent(QMouseEvent *e)
{QString strCoordinate = "坐标: ( " + QString::number(e->x())+ ", " + QString::number(e->y()) + " )";ui->labCoordinate->setText(strCoordinate);
}

运行之后,

What????  坐标出现负值,原来x()和y()是相对于当前窗体控件来的,如果鼠标位置在窗体范围内则是个正值,超出则会出现负,看下介绍,顺便根据介绍找到了全局显示的函数。

但是修改过后,该程序执行后还有问题,那就是虽然增加了鼠标移动事件,但是鼠标不点击时,依然无法获取坐标。这与我本来想法相冲突,我的想法很简单,鼠标到哪,坐标就到哪。

分析原因后发现QT默认是不打开鼠标跟踪的,如果需要该功能,需要通过setMouseTracking事件将其开启,如下介绍:

所以我在程序的结构函数里增加了下面这一句,将鼠标移动打开。如果不设置鼠标移动,事件就不会自动进入mouseMoveEvent事件

MoveMouse::MoveMouse(QWidget *parent): QMainWindow(parent), ui(new Ui::MoveMouse)
{ui->setupUi(this);this->setMouseTracking(true); //打开鼠标跟踪
}

当加完之后,鼠标移动仍然无法自动获取坐标,结合之前的鼠标坐标只在范围内正常,并且文档介绍如果窗体中包含其他控件,则控件也需要打开鼠标跟踪,所以我怀疑是不是必须要设置当前窗体中的鼠标跟踪。

但是窗体应该是什么呢,我看到了构造函数中的一段设置UI的代码ui->setupUi(this),并且当我们自己创建的QMainWindow后,系统会自动在UI的命名空间中创建同名的类MoveMouse,且在UI::MoveMouse里面定义了一些创建窗体相关类。

private:Ui::MoveMouse *ui;{ui->setupUi(this);
}

ui_movemouse.h文件中内容如下:

class Ui_MoveMouse
{
public:QAction *GetCoordinate;QWidget *centralwidget;QLabel *labCoordinate;QStatusBar *statusbar;void setupUi(QMainWindow *MoveMouse){GetCoordinate = new QAction(MoveMouse);GetCoordinate->setObjectName(QString::fromUtf8("GetCoordinate"));centralwidget = new QWidget(MoveMouse);centralwidget->setObjectName(QString::fromUtf8("centralwidget"));labCoordinate = new QLabel(centralwidget);......}
}namespace Ui {class MoveMouse: public Ui_MoveMouse {};
} // namespace Ui

所以在这个Ui命名空间的类里面,可以找到一个核心类centralwidget,它将返回主窗口的中心窗口部件,那么如果想让鼠标移动事件也通知到它,是不是要将它的鼠标移动属性打开呢,所以接着我尝试了一下:

MoveMouse::MoveMouse(QWidget *parent): QMainWindow(parent), ui(new Ui::MoveMouse)
{ui->setupUi(this);this->setMouseTracking(true); //打开鼠标跟踪ui->centralwidget->setMouseTracking(true); //打开当前
}

执行后,确实鼠标移动可以获取到坐标。当然仍然无法满足我的需求,因为出了窗体后,仍然需要在窗体内按住鼠标才能获取到窗体外的移动坐标,这还是跟事件通知有关系,如果确实想获取怕是只能使用系统级的API才行了。

QT模拟鼠标自动点击:1-鼠标移动自动显示坐标相关推荐

  1. python实现软件自动点击_鼠标自动点击、键盘自动输入?几行Python代码搞定

    第一步:安装并导入相关模块 只需要安装PyUserInput,如下:pip install PyUserInput 如果你是Win10系统,肯定会报错,具体怎么解决,我放在文章结尾讲,先把主要思路讲完 ...

  2. python 鼠标 自动点击_鼠标隔段时间自动点击屏幕

    知识点:Python库及简单定时器的使用 1. 鼠标自动点击屏幕代码 (1). 首先 pip install pymouse (2). 运行代码出现:ModuleNotFoundError: No m ...

  3. 自动点击按钮html,如何自动点击网页按钮

    如何自动点击网页按钮 http://club. 请问如何点击这个网页上的"领取"按钮(三个如何区分)?谢谢. ttp://www. 红包 -  -  Excel Home论坛 - ...

  4. Android 自动点击工具,自动点击器app下载-自动点击工具 安卓版v1.0.2-PC6安卓网

    自动点击工具app是一款非常不错的系统工具类手机软件,有了自动点击工具app,你将从此释放双手进行抢购,还在等什么?下载自动点击工具app试试吧! 软件介绍 自动点击工具是一款记录手势和点击操作轨迹的 ...

  5. 自动点击触发事件(自动按下释放键盘上某个键)

    Robot类用于为测试自动化.自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件.Robot 的主要目的是便于 Java 平台实现自动测试. 使用该类生成输入事件与将事件发送到 AW ...

  6. auto.js脚本自动点击屏幕双11自动领金币

     auto软件和js脚本在本人的csdn的上传资源下载 js脚本操作手机屏幕的代码 auto.waitFor(); var height = device.height; var width = de ...

  7. 自动点击按钮(即自动触发点击事件)

    这段时间做项目,有一个特殊的需求,就是界面上有一个按钮,需要自动去触发. 找了下资料,发现有个api是可以完成的 就是:sendActionsForControlEvents 这个 下面就是使用方法 ...

  8. 软件功能以图找图自动点击鼠标 发现一款非常好用的以图视图自动操作软件AI万控系统和大家分享一下全名叫“AI人工智能万控系统”

    软件功能以图找图自动点击鼠标 发现一款非常好用的以图视图自动操作软件AI万控系统和大家分享一下软件功能-识图点击,自动找图点击,找图点击,找图点击软件,以图识图自动点击操作,以图识图点击操作,以图找图 ...

  9. 点击器自动点击器,让你的屏幕操作变得更加简单

    点击器自动点击器,也被称为屏幕点击器或鼠标连点器,是一种能够模拟人类点击行为的工具.它可以在特定时间间隔内自动执行鼠标点击操作,来代替用户手动点击屏幕.这种工具通常运行在Windows.MacOS和L ...

  10. 安卓软件改名器_自动点击屏幕的软件有哪些?-手机自动点击软件下载

    闪电自动点击 系统工具 | 4.21 MB | 平台:安卓 更新时间:2020-11-09 下载 闪电自动点击app是一款能够帮助你自动操作重复性机械化的操作的软件,比如在游戏中你需要一直点击屏幕进行 ...

最新文章

  1. 初次尝试使用Windbg调试Sql Server 进程
  2. 【leetcode】3Sum
  3. mybatis框架总体说明---Mybatis学习笔记(二)
  4. 计算机设计文献参考,优秀计算机设计论文参考文献 计算机设计论文参考文献数量是多少...
  5. 任正非给华为代表处CFO定位:能力不够的赶快补
  6. JavaScript学习(六十五)—数组知识点总结
  7. 读取文件时,程序经历了什么?
  8. 几款主流好用的markdown编辑器介绍
  9. eclipse安装Spring插件
  10. 小米真蓝牙耳机说明书_小米真无线蓝牙耳机Air拆解:399元值了
  11. python如何表示正整数_python中正整数
  12. 【Python】1.基本语法元素
  13. arch-yaourt安装
  14. 在.NET实现邮件收发功能(包含源代码)
  15. 荣耀Magic2:用最简单的方法解决最复杂的问题
  16. 介绍一款好用的flash播放器(Vcastr 3.0 – flash video(flv) player)
  17. 银行各个岗位及薪酬排名出炉(供参考)
  18. 深化“智能二道门”建设,化工厂人员定位系统深度解析!
  19. vscode 实现在行尾加分号
  20. 如何查看linux服务器是否为amd64架构还是x86_64架构

热门文章

  1. Java实现文件传输
  2. 魔兽世界服务端开服架设服务器搭建教程
  3. 实时环境映射贴图(Real-time Evironmnet Mapping)
  4. 那些年我们一起上过的黑客网站
  5. 虚幻引擎5都有哪些重要新功能?
  6. matlab 生成格雷码,格雷码(Grey Code)生成规则
  7. 肌电数据归一化并显示灰度图片
  8. Tomcat8正确配置环境变量详细方法
  9. 明月浩空html播放器,明月浩空音乐-绚丽彩虹|HTML5网站音乐播放器源码带后台-仅研究学习...
  10. ELF文件详解—初步认识