首先简单描述一下事件过滤器,事件过滤器可以让我们对事件进行一些我们感兴趣的操作,它是QObject的函数,但是在QObject里面是一个空的函数体.我们需要重写这个函数,这样可以将一些我们感兴趣的操作进行过滤.
比如文本编辑框,我们可以在MainWindow上重写这个过滤器,然后调用
text->installEventFilter(this);
这样文本编辑框的事件在分发之前就会先过滤.
下面的代码是用来过滤tab键的.如个没有这个代码,我们按下tab键会让鼠标退格,但是现在不会,并且在控制台输出语句.
bool MainWindow::eventFilter(QObject* obj,QEvent* event)
{
if(obj == text)//如果事件是从text传过来
{
if(event->type()==QEvent