QT 事件拖动窗口

//上面缺号头文件,自行添加哦 class DragtidgetFilter :public Qobject{
public:
  DragWidgetFilter(QObject* parent) :Q0bject(parent){}  //重写事件
  bool eventFilter(Qobject* object,QEvent* event)
  {    auto n= dynanic_cast<QWidget*>( object);
    if(!w) return false;
  
    if(event→type()==QEvent::MouseButtonPress)
    {
      auto ev= dynamic_cast<QMouseEvent*>(event);
      if(!ev) return false;
      pos=ev→pos();
    }
    else if(event→type()==QEvent::MouseMove)    {
      auto ev= dynamic_cast<QMouseEvent*>(event);
      if(!ev)
      return false;
      if(ev→buttons()&Qt::MouseButton::LeftButton) w→move(ev→globalPosition().toPoint()-pos);
    }
  }  return qobject::eventFilter(object, event);}
private:
  QPoint pos;
};

 

posted @ 2024-09-13 09:29  MaopaiJD  阅读(35)  评论(0)    收藏  举报