16,211
社区成员
发帖
与我相关
我的任务
分享
bool isMouseDown;
//移动前老位置
QPoint oldPoint;
//主界面基准点
QPoint mainPoint;
//***鼠标事件、界面移动函数
void Calculator::mousePressEvent(QMouseEvent *mouseEvent)
{
//鼠标按下,为真
isMouseDown = true;
oldPoint = this->mapToGlobal(mouseEvent->pos());
}
void Calculator::mouseReleaseEvent(QMouseEvent *)
{
//如果鼠标松开,为假
isMouseDown = false;
}
void Calculator::mouseMoveEvent(QMouseEvent *mouseEvent)
{
if(isMouseDown && !this->isMaximized())
{
mainPoint = this->mapToGlobal(mouseEvent->pos());
int x = mainPoint.x() - oldPoint.x();
int y = mainPoint.y() - oldPoint.y();
oldPoint = mainPoint;
mainPoint = this->pos();
mainPoint.setX(mainPoint.x() + x);
mainPoint.setY(mainPoint.y() + y);
this->move(mainPoint);
//键盘移动后新的移动点
QPoint newPoint;
newPoint.setX(mainPoint.x()+110);
newPoint.setY(mainPoint.y());
}
}