记录下Qt学习的过程
2020-03-21 周六
在程序给把事件发到事件过滤器之前可以进行拦截
步骤1:给控件安装事件过滤器:
ui->label_2->installEventFilter(this);
此处的this是父类,因为是安装在本窗口内,所以需要父类给他安装。
步骤2 :重写eventfilter函数:先在.h文件进行调用,然后在对应窗口界面进行实现。
bool Widget::eventFilter(QObject *obj, QEvent *e)
{
//逻辑。。。。
if (//)
{
return true;
}
return 父类 ::eventFilter(obj , e);
}
eventfilter函数中有两个变量,QObject 用来判断哪个控件;
QEvent 用来判断对该控件进行的操作。
此处有一个需要注意:第一个返回值是true,代表可以直接执行之前代码。
第二个return 是代表在此次调用中,除被设定的拦截之外,其余的事件均交由 父类* 处理。