简单的窗口拖动

窗口拖动

//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);
}
发布了21 篇原创文章 · 获赞 6 · 访问量 861

猜你喜欢

转载自blog.csdn.net/BOOM_haha/article/details/76896368