代码
bool m_moving = false;
QPoint m_lastPos;
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void QDlgLogin::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
m_moving = true;
m_lastPos = event->globalPos() - pos();
}
return QDialog::mousePressEvent(event);
}
void QDlgLogin::mouseMoveEvent(QMouseEvent *event)
{
if (m_moving && (event->buttons() && Qt::LeftButton)
&& (event->globalPos()-m_lastPos).manhattanLength() > QApplication::startDragDistance())
{
move(event->globalPos()-m_lastPos);
m_lastPos = event->globalPos() - pos();
}
return QDialog::mouseMoveEvent(event);
}
void QDlgLogin::mouseReleaseEvent(QMouseEvent *event)
{
Q_UNUSED(event);
m_moving=false;
}