1. 使用前引用头文件: #include <QMouseEvent>
  2. 事件声明


Qt5.12实战之鼠标事件处理_Powered by 金山文档


void mousePressEvent(QMouseEvent *event);
 void mouseMoveEvent(QMouseEvent *event);
  1. 事件实现


Qt5.12实战之鼠标事件处理_Powered by 金山文档_02


//鼠标按下事件
void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if(event->button()==Qt::LeftButton){
        curPos=event->globalPos()-pos();//鼠标位置减去窗口位置
        qDebug()<<event->globalPos()<<pos()<<curPos;
        event->accept();
    }
}
//鼠标移动事件
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
    qDebug()<<event->button()<<Qt::LeftButton;
    if(event->buttons()&Qt::LeftButton){
        move(event->globalPos()-curPos);
        qDebug()<<event->globalPos()<<curPos;
        event->accept();
    }
}