在设置ui的部分隐藏标题栏
private:
QPoint m_lastPos;//点坐标
代码:
this->setWindowFlag(Qt::FramelessWindowHint);
重写鼠标事件
void mouseMoveEvent(QMouseEvent *event) override;//鼠标移动事件
void mousePressEvent(QMouseEvent *event) override;//鼠标按下事件
void mouseReleaseEvent(QMouseEvent *event) override;鼠标松开事件
//鼠标按下事件
void Widget::mousePressEvent(QMouseEvent *event)
{
//记录鼠标按下时的窗口坐标
m_lastPos = event->globalPos();
}
//鼠标松开事件
void Widget::mouseReleaseEvent(QMouseEvent *event)
{
//记录鼠标松开时窗口的坐标
m_lastPos = event->globalPos();
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
//移动窗口
this->move(this->x()+(event->globalX()-m_lastPos.x()),this->y()+(event->globalY()-m_lastPos.y()));
//记录窗口坐标
m_lastPos = event->globalPos();
}
`globalPos()`函数是Qt中`QMouseEvent`类的一个成员函数,用于获取鼠标事件发生时的全局坐标(屏幕坐标)。鼠标事件对象中的`globalPos()`函数返回一个`QPoint`对象,表示鼠标事件的全局坐标。 在Qt中,当鼠标点击或移动时,由鼠标事件对象`QMouseEvent`提供了当前鼠标事件的坐标信息