赞
踩
事件过滤器可以接受所有被发送到这个对象的事件,然后对事件进行过滤。
加入一个控件中含有多个子控件,我们希望监视子控件的鼠标点击事件,那么一个最直接的方法就是继承子控件并且重写MousePressEvent函数。
然而一个更好的方式就是使用一个事件过滤器,监控父控件的事件,然后分发给子控件。
实现一个事件过滤器包括两个步骤:
- child_widget->installEventFilter(this);
-
- bool Parent_widget::eventFilter(QObject *watched, QEvent *event)
-
- {
- if(watched == child_widget)
- {
- if(event->type() == QEvent::MouseButtonPress)
- {
- //do something
- return true;
- }
- }
- return false;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。