一、在要移动的窗口的头文件(.h)中加入鼠标事件和一个QPoint变量
private:
QPoint last;
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
二、在.cpp文件中加入以下实现方法
//可以在构造函数中初始一下last变量用其成员函数setX,setY就是了
//接下来就是对三个鼠标事件的重写
void WMain::mousePressEvent(QMouseEvent *e)
{
last = e->globalPos();
}
void WMain::mouseMoveEvent(QMouseEvent *e)
{
int dx = e->globalX() - last.x();
int dy = e->globalY() - last.y();
last = e->globalPos();
move(x()+dx, y()+dy);
}
void WMain::mouseReleaseEvent(QMouseEvent *e)
{
int dx = e->globalX() - last.x();
int dy = e->globalY() - last.y();
move(x()+dx, y()+dy);
}
三、头文件中加入QMouseEvent引用
#include <QMouseEvent>
最后在复制完成后修改类名