Sistema de eventos de aprendizaje del módulo Qt Creator (filtro de eventos)

Sistema de eventos de aprendizaje del módulo Qt Creator (filtro de eventos)

Para el filtrado de eventos, la función event () también se puede realizar, pero solo una a la vez, por lo que Qt tiene un filtro de eventos, que puede filtrar varios controles a la vez.
Mira el ejemplo directamente:

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);
    }
}

Supongo que te gusta

Origin blog.csdn.net/m0_50210478/article/details/108394436
Recomendado
Clasificación