在设计窗体的时候,我们只想通过点击左键拖动自定义标题栏来实现窗体移动,点击左键拖动其它区域无效,这时候就得判断光标是落在哪个对象上,直接上源码:
void MainWindow::mousePressEvent(QMouseEvent *mouseEvent){if(mouseEvent->button() == Qt::LeftButton &&QApplication::widgetAt(QCursor::pos()) == ui->titleBar) //titleBar是自定义的标题栏{
startPos = mouseEvent->globalPos();titleBarPress = true;}
}void MainWindow::mouseMoveEvent(QMouseEvent *mouseEvent){if (titleBarPress){
this->move(this->pos() + mouseEvent->globalPos() - startPos);startPos = mouseEvent->globalPos();}
}void MainWindow::mouseReleaseEvent(QMouseEvent *){titleBarPress = false;}
其中titleBar是自定义的标题栏,这样就实现了在自定义标题栏上长按鼠标左键来移动窗体