Qt Creator 模块学习 —— 事件系统(事件过滤器)

Qt Creator 模块学习 —— 事件系统(事件过滤器)

对于事件过滤来说event()函数也可以进行但是一次只过滤一个,因此Qt是由一个事件过滤器的,可以一次过滤多个控件。
直接看例子:

bool Widget::eventFilter(QObject *obj,QEvent *ev){
    
    
   QMouseEvent *env = static_cast<QMouseEvent *>(ev);
   
    if(obj==ui->label_2){
    
    
        if(ev->type()==QEvent::MouseMove)
        {
    
    
            ui->label_2->setText(QString("Mouse move:(%1,%2)").arg(env->x()).arg(env->y()));
            return true;
        }
        if(ev->type()==QEvent::MouseButtonPress)
        {
    
    
            ui->label_2->setText(QString("Mouse press:(%1,%2)").arg(env->x()).arg(env->y()));
            return true;
        }
        if(ev->type()==QEvent::MouseButtonRelease)
        {
    
    
            ui->label_2->setText(QString("Mouse release:(%1,%2)").arg(env->x()).arg(env->y()));
            return true;
        }
        else
        {
    
    
            return  QWidget::eventFilter(obj,ev);
        }
    }
    else
    {
    
    
        return  QWidget::eventFilter(obj,ev);
    }
}

猜你喜欢

转载自blog.csdn.net/m0_50210478/article/details/108394436
今日推荐