qt发送event_详解关于Qt中Event事件处理流程

Qt中Event处理流程是本文要介绍的内容,主要是来了解Event事件的处理。在Qt/Embedded中,鼠标事件来自于触摸屏设备。在使用select读取触摸屏设备中的数据后(即采样,压力达到一定阈值),处理些采样点后得到一个物理设备坐标点,然后用QCoreApplication的sendEvent活postEvent将其发送出去,于是Event的处理流程就开始了。

首先,QCoreApplication::notify将event直接传递给接受者。重新实现它,可以截取系统所有需要处理的事件。

其次,在使用notify通知接受者处理后,可以为application的实例qApp安装一个event filter,它将处理应用程序范围内的事件。

第三,event在经过application的处理后,到达QObject的event filter列表,为接收者者们安装event filter,将只处理发给自己的各个事件。

第四,在经过上述处理后,event到达QObject的event函数。该函数处理发送给自己的event,如QWidget中它按照event类型分发给自己的各个event Handler,如MouseReleaseEvent,KeyPressEvent等。

***,是处理不同类型event的event handler。这也是经常使用的,它只处理自己的event。

过程如下:

bool QCoreApplication::notify (

QObject

* receiver, QEvent

* event

)

->qApp

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值