1.创建继承自QWidget的派生类QXXX,并重载QWidget类的三个鼠标事件虚函数
 void QWidget::mousePressEvent(QMouseEvent *event);
 void QWidget::mouseMoveEvent(QMouseEvent *event);
 void QWidget::mouseReleaseEvent(QMouseEvent *event);
2.声明变量
 bool bMoving = false;
 QPoint lstPos;
3.声明函数
 void mousePressEvent(QMouseEvent *event);
 void mouseMoveEvent(QMouseEvent *event);
 void mouseReleaseEvent(QMouseEvent *event);
4.鼠标事件的实现
 // 左键按下事件
 void QXXX::mousePressEvent(QMouseEvent *event)
 {
     if (Qt::LeftButton == event->button())
     {
         bMoving = true;
         lstPos = event->globalPos() - pos();
     }
     return QWidget::mousePressEvent(event);
 }
// 鼠标移动事件
 void QXXX::mouseMoveEvent(QMouseEvent *event)
 {
     if (bMoving && (event->buttons() && Qt::LeftButton) && 
     ((event->globalPos() - lstPos).manhattanLength() > QApplication::startDragDistance()))
     {
         move(event->globalPos() - lstPos);
         lstPos = event->globalPos() - pos();
     }
     return QWidget::mouseMoveEvent(event);
 }
// 鼠标释放事件
 void QXXX::mouseReleaseEvent(QMouseEvent *event)
 {
     bMoving = false;
 }









