QT 鼠标点击事件
在QT的使用过程中,使用获取鼠标事件的内容非常多,我们可以通过在鼠标点击移除等等操作之后,通过重写系统中的函数,对其进行多一步的操作。Qt事件主要包括鼠标事件和键盘事件两种。我们今天介绍的是鼠标事件。
在QT中,所有的事件都来自于QEvent这个父类,因此,在鼠标事件的使用过程中那必然少不了他的出现,但是QEvent他里面有许许多多的子类,我们字啊使用鼠标事件时使用的时QMouseEvent 这个类。但是滚轮事件于鼠标事件不是使用同一种方法,滚轮事件使用的时QWheelEvent这个类。
在事件的对象创建之后,QT会吧这个对象传递给 event()函数。但是这个函数并不会直接处理我们的事件,而是将它进行分类,派送给他的孩子完成处理。每个孩子都会有自己指定的事件类别。
头文件
在我们的使用过程中,需要现在头文件中进行定义
protected:
void mousePressEvent(QWheelEvent *event);
鼠标按下事件
void mousePressEvent(QMouseEvent *e); 鼠标按下
鼠标释放事件
void mouseReleaseEvent(QMouseEvent *e); 鼠标释放
鼠标移动事件
void mouseMoveEvent(QMouseEvent *e); 鼠标移动
鼠标双击事件
void mouseDoubleClickEvent(QMouseEvent *e); 鼠标双击
鼠标滚轮事件
void wheelEvent(QWheelEvent *event);
最后 在写完函数内部消息以后 一定记得在最后加上一句类似于QWidget::mousePressEvent(event); 的内容 。
但是我们通过点击鼠标可以发现,触发的是QMouseEvent的事件,他也会阻塞住mousePressEvent的事件。
这里需要注意的是:在把不用阻塞分发的时候,需要分发给父类的event函数处理。
总结
以上的方法仅仅是鼠标时间的一部分,大家有需要可以在官网查到全部的内容,并会有详细的解释,而我写的内容仅为自己理解的表达。
今天的更新到此结束 希望各位大佬批评指正!
- 点赞
- 收藏
- 关注作者
评论(0)