码迷,mamicode.com
首页 > 其他好文 > 详细

Qt 的事件

时间:2019-01-07 17:26:31      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:特定   同事   int   seve   event   nbsp   key   pre   忽略   

一个事件由一个特定的QEvent子类来表示,如QMouseEvent、QKeyEvent

处理一个事件的方法:

方法一:重新实现部件的paintEvent、mousePressEvent等事件处理函数。 最常用,不过只能处理特定部件的特点事件。

方法二:在对象上安装事件过滤器。使用事件过滤器可以在一个界面类中同时处理不同子部件的不同事件。  也比较常用

方法三:重新实现event函数,类似于第一种,但可以处理多种不同事件。

 

Qt 中,事件的传递顺序是:

1. 先进入事件过滤器。

2. 然后通过事件过滤器可以判断是哪个部件发生的事件。

3. 再执行该焦点部件的event()函数。

4. 最后是焦点部件的事件处理函数,如keyPressEvent()。

5. 如果焦点部件忽略了该事件(event->ignore()),那么执行父部件的事件处理函数。

 

注意:event函数和事件处理函数是在焦点部件内重新定义的,而事件过滤器则是在焦点部件的父部件中重新定义。

 

Qt 的事件

标签:特定   同事   int   seve   event   nbsp   key   pre   忽略   

原文地址:https://www.cnblogs.com/ll-10/p/10233823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!