在使用Qt做桌面软件时,各个系统的窗口标题不统一,也不好看,所以就隐藏了自己写标题栏,但是隐藏系统标题栏后,就不能再拖动窗口了,所以得自己写:
// 重写这几个函数
void mousePressEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
然后需要一个判断鼠标是否按住的变量,一个变量保存鼠标按下时的鼠标坐标减去窗口坐标差值
bool m_mousMove;
QPoint m_Difference;
然后写点代码
void DialogObj::mousePressEvent(QMouseEvent* event)
{
if (event->button() == Qt::LeftButton) {
DEBUG() << "this->m_mousMove = true;";
this->m_mousMove = true;
// 按下时保存差值
this->m_Difference = event->globalPos() - this->pos();
}
}