坐标图示:
注意两点:
一、拖动时,拖动点相对于widget左上角坐标的相对距离始终不变。
二、move函数参数传递的是左上角坐标。
核心代码:
QPoint dis;
void buterfly::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
dis = event->globalPos()-geometry().topLeft();
}
}
void buterfly::mouseMoveEvent(QMouseEvent *event)
{
if(event->buttons() & Qt::LeftButton)
{
move(event->globalPos()-dis);
}
}