窗口拖动
//widget.h
protected:
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseMoveEvent(QMouseEvent *event);
private:
QPoint startPos;//鼠标相对于窗口左上角的点
//widget.cpp
void Widget::mousePressEvent(QMouseEvent *event)
{
QWidget::mousePressEvent(event);
this->startPos = event->pos();//相对于窗口左上角的点
}
//以startPos为桥梁,startPos一旦按下后就保持不变
void Widget::mouseMoveEvent(QMouseEvent *event)
{
QWidget::mouseMoveEvent(event);
QPoint y = event->globalPos();//相对于屏幕左上角的点
QPoint x = y - this->startPos;//窗口左上角相对于屏幕的坐标
this->move(x);
}