摘要: Qt处理事件的第三种方式:"在QObject中注册事件过滤器",如果对象使用installEventFilter()函数注册了事件过滤器,目标对象中的所有事件将首先发给这个监视对象的eventFilter()函数。 mybutton.h文件如下:#ifndef MYBUTTON_H#define MYBUTTON_H#include <QPushButton>#include <QMouseEvent>class MyButton : public QPushButton{protected: bool event(QEvent *e);};#end 阅读全文
posted @ 2012-10-10 20:50 venow 阅读(6911) 评论(0) 推荐(0)
摘要: Qt处理事件的第二种方式:"重新实现QObject::event()函数",通过重新实现event()函数,可以在事件到达特定的事件处理器之前截获并处理他们。这种方法可以用来覆盖已定义事件的默认处理方式,也可以用来处理Qt中尚未定义特定事件处理器的事件。当重新实现event()函数时,如果不进行事件处理,则需要调用基类的event()函数。 mybutton.h的文件如下:#ifndef MYBUTTON_H#define MYBUTTON_H#include <QPushButton>#include <QMouseEvent>class MyBu 阅读全文
posted @ 2012-10-10 20:21 venow 阅读(2843) 评论(0) 推荐(1)
摘要: 从这章开始,我将简单实现Qt事件处理的五种方式,这五种方式的实现都是基于一个自定义的Button,我将它命名为MyButton。由于我是刚学Qt,有什么讲的不对的地方,请指正,不胜感激。 首先来看第一种事件处理:"重新实现特定的事件处理器",这种方式最简单,派生于一个组件,重新实现它的事件处理。这里我主要实现的是mousePressEvent、mouseReleaseEvent以及mouseMoveEvent这三个事件处理,而实现的方式都差不多,不同在于设置Button显示的文本。 mybutton.h的头文件如下:#ifndef MYBUTTON_H#define MYB 阅读全文
posted @ 2012-10-10 20:02 venow 阅读(11912) 评论(1) 推荐(0)