Qt中捕获鼠标进入事件的函数如下:
要求实现鼠标进入label后打印鼠标进入,移出打印鼠标离开。
想要实现这个功能,我们必须使用自定义控件。
这里我们不用ui界面。
这里我们复制刚才帮助文档查看的函数所有信息。
然后在.cpp中实现我们想要鼠标进入和移除实现的功能。
然后在主窗口中提升该自定义窗口控件,但是发现基类是QLabel,所以我们需要去修改一下继承对象。
修改内容如下:
最后运行,结果如下:
我们在QLabel的重新实现函数中找到了与鼠标相关的函数。
接下来我们给这几个事件进行重写。
首先呢,在头文件中加入这几个函数。
然后去.cpp文件中重写实现。为了方便观察结果,我们先把之前实现的鼠标进入、离开注释掉。
在这个实现中,点击鼠标右键也是会有输出结果。
接下来我们实现点击鼠标,显示点击位置的坐标。这个就需要利用我们函数中的参数QMouseEvent了。
我们可以看到,该类型可以输出打印当前坐标x、y。
在这里,使用了Qt中格式化字符串的方法。
当鼠标左键按下,提示信息。
通过查找QMouseEvent的帮助文档,我们可以看见按键相关的在button下。
但是这里有个问题,鼠标移动并没有显示坐标,因为button只能记录瞬间的结果,因此我们需要使用buttons。
只需要加个s,就可以完美运行了。
最后,我们想要鼠标不用点击任何按键就能实时获取位置,设置鼠标追踪,只要鼠标移动就能捕获。