您当前的位置: 首页 > 

DS小龙哥

暂无认证

  • 0浏览

    0关注

    679博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

10.4 事件过滤器

DS小龙哥 发布时间:2021-10-24 00:14:32 ,浏览量:0

10.4 事件过滤器

 

如果开发者希望处理特定的事件,QT提供的事件过滤器允许拦截分发给某个对象的事情。给一个QObject对象安装事件过滤器,使得一个QObject对象可以监视另一个QObject对象中的事件,可以在事件到达该对象之前将事件捕获,从而起到监视该对象的作用。

10.4.1 介绍事件过滤器接口

作为安装事件过滤器的类,必须是QObject类的子类;需要通过重写QObject类的eventFilter函数来接收事件以作选择性处理。eventFilter函数原型如下:

[virtual] bool QObject::eventFilter(QObject *watched, QEvent *event)

eventFilter函数参数中watched对象是原本接收事件的对象,我们安装了事件过滤器后,事件就会先发给过滤器的对象,过滤器对象如果不处理某个事件,这个事件才会进一步向前传递,最终才有可能到达watched对象。

重写了eventFilter函数后,还需要将事件过滤器安装到需要被过滤的对象上,这样eventFilter函数才能响应事件。完成安装事件过滤器的函数接口为installEventFilter,其原型如下:

void QObject::installEventFilter(QObject *filterObj)

参数filterObj是监视事件的对象,此对象可以通过eventFilter函数接收事件;如果某个事件需要被过滤(得到想要的事件&#

关注
打赏
1664009229
查看更多评论
立即登录/注册

微信扫码登录

0.0410s