QT 鼠标拖动窗口的实现

.h文件内

private:

       

/* 鼠标拖动窗口 */
    void mouseMoveEvent(QMouseEvent *event);
    void mousePressEvent(QMouseEvent *event);
    /* 记录窗口当前的位置 */
    QPoint StartPos;

    .cpp 文件内:

void MyMainWindow::mouseMoveEvent(QMouseEvent *event)
{
    //去表格虚框
    QPoint EndPos;
    if(event->buttons()==Qt::LeftButton)
    {
    EndPos = event->globalPos()- StartPos;
    this->move(EndPos);
    }
}
void MyMainWindow::mousePressEvent(QMouseEvent *event)
{
    if(event->buttons() == Qt::LeftButton)
    {
    //记录窗口此时的坐标
    StartPos = event->globalPos() - this->frameGeometry().topLeft();
    }
}

你可能感兴趣的:(Qt)