赞
踩
Qt中event事件分发器
运行程序时会根据实际的操作触发不同的多个事件,例如按下鼠标事件,直观讲好像是点击鼠标后,直接会调用mousePressEvent
来处理事件,其实不然,在程序与各事件处理函数之间,还有一个专门用来管理事件的部分,称为事件分发bool event(QEvent *ev)
。因此,实际事件处理流程是:用户点击鼠标,程序接收到该动作,将其交付给事件分发,事件分发对事件进行判断,然后传递给对应的事件处理函数,完成事件的处理。
事件分发的返回值为bool
类型,如果返回值为true
,则表示用户将自己处理该事件,不再向下分发事件,即不再需要对应的事件处理函数来处理。
下面为了验证存在事件分发器,编写代码使用事件分发拦截点击鼠标的事件。
void MyLabel::mousePressEvent(QMouseEvent *ev)
{
if(ev
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。