事件过滤器

主要是前三种

bool MyWidget::eventFilter(QObject *obj, QEvent *e)
{
   if(obj == ui->label_2)
   {
       QMouseEvent *env = static_cast<QMouseEvent *>(e);
       //判断事件
       if(e->type() == QEvent::MouseMove)
       {
           ui->label_2->setText(QString("Mouse move:(%1, %2)").arg(env->x()).arg(env->y()));
           return true;
       }
       if(e->type() == QEvent::MouseButtonPress)
       {
           ui->label_2->setText(QString("Mouse Press:(%1, %2)").arg(env->x()).arg(env->y()));
           return true;
       }
       if(e->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,e);
       }
   }
   else
   {
      return QWidget::eventFilter(obj,e);
   }
   
//   if(obj == ui->pushButton)
//   {
       
//   }    //和上面的类似 
}

猜你喜欢

转载自blog.csdn.net/fei_yang_yf/article/details/80014055
今日推荐