10.4 事件过滤器

Posted DS小龙哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10.4 事件过滤器相关的知识,希望对你有一定的参考价值。

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函数接收事件;如果某个事件需要被过滤(得到想要的事件&#

以上是关于10.4 事件过滤器的主要内容,如果未能解决你的问题,请参考以下文章

为什么我不能在此片段中生成唯一对象数组?

如何使用事件侦听器来加载动画片段的循环

Huawei_Netconf_Ncclient

基于内部片段的graphql过滤器(gatsbyJS)

Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法

js简洁代码片段