主要思想就是:当进入滑轮的滚动事件的时候,就禁用该控件,而进入鼠标点击事件的时候,就将这个控件进行激活

如:spinBox控件,鼠标的过滤事件可以参考博客:https://blog.csdn.net/Littlehero_121/article/details/101376240

在.h文件中:

  bool eventFilter(QObject *target, QEvent *event);

在构造函数中进行注册:

 ui->spinBox->installEventFilter(this);

在.cpp中进行实现:

bool MainWindow::eventFilter(QObject *target, QEvent *event)
{
    
     if(target == ui->spinBox)
     {
         if(event->type() == QEvent::Wheel)
         {
             qDebug()<<"enter wheel";
             ui->spinBox->setEnabled(false);
         }
         if(event->type() == QEvent::MouseButtonPress)
          {
             qDebug()<<"enter 1111";
             ui->spinBox->setEnabled(true);
          }
     }
      return QMainWindow::eventFilter(target, event);
}

滑动的时候,如图:

点击的时候如图:

完成 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐