网站500m空间够用吗,方维服务客户类型,做网站网站刷单违法吗,网络营销网站平台有哪些自己使用事件过滤器的总结
1、应用给事件管理器分发事件#xff0c;事件管理器根据事件类别将事件发给对应的类。 2、事件过滤器在应用和事件管理器之间拦截事件派发给事件管理器的事件#xff0c; 这个操作会给事件过滤器传递两个参数#xff0c;一个是Object#xff08;…自己使用事件过滤器的总结
1、应用给事件管理器分发事件事件管理器根据事件类别将事件发给对应的类。 2、事件过滤器在应用和事件管理器之间拦截事件派发给事件管理器的事件 这个操作会给事件过滤器传递两个参数一个是Object某个控件一个是事件类型。 3、然后在下面使用if先判断控件然后判断事件类型然后执行操作。 4、执行完操作后使用return true表示事件只执行自定义的操作这个事件不继续传递。 使用return false,表示事件执行完当前自定义的操作后传递该事件给对应的事件管理器 继续执行系统的其他事件。
写在函数声明里
bool eventFilter(QObject *obj, QEvent *event);
控件注册事件过滤器
ui-test_label-installEventFilter(this);
ui-connec_btn-installEventFilter(this); eventFilter函数详细
bool Widget::eventFilter(QObject *obj, QEvent *event)
{if(obj ui-test_label){if(event-type() QEvent::MouseButtonPress){QMouseEvent *mouseevent static_castQMouseEvent*(event);qDebug() This is the label clicked;qDebug() mouseevent-pos();return true; //return true 表示不传递事件}return false; //表示传递事件}if(obj ui-connec_btn){if(event-type() QEvent::MouseButtonPress){qDebug() QPushButton;return false; //传递剩余事件}}return false;
}