QT 鼠标点击事件

举报
咚咚隆地咚 发表于 2022/09/23 13:47:05 2022/09/23
【摘要】 在QT的使用过程中,使用获取鼠标事件的内容非常多,我们可以通过在鼠标点击移除等等操作之后,通过重写系统中的函数,对其进行多一步的操作。Qt事件主要包括鼠标事件和键盘事件两种。我们今天介绍的是鼠标事件。在QT中,所有的事件都来自于QEvent这个父类,因此,在鼠标事件的使用过程中那必然少不了他的出现,但是QEvent他里面有许许多多的子类,我们字啊使用鼠标事件时使用的时QMouseEvent ...

在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函数处理。

总结

以上的方法仅仅是鼠标时间的一部分,大家有需要可以在官网查到全部的内容,并会有详细的解释,而我写的内容仅为自己理解的表达。

今天的更新到此结束 希望各位大佬批评指正!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。