需要使用QLabel显示副头的画面,目前的需求是QLabel固定大小、固定区域拖动,同时最顶层显示。这里继承自QLabel类新建一个C++类来表示我们这种Label,其中主要是三个鼠标事件的重写在这里记录一下。
1.鼠标按下事件:
if(event->button() == Qt::LeftButton && mouseStatus == moveEndStatus)
{
startMoveP = event->pos();
mouseStatus = moveStartStatus;
}
2.鼠标移动事件:
if(mouseStatus == moveStartStatus)
{
endMoveP = event->pos();
oldStartP = this->geometry().topLeft();
//计算新的起始点
newStartP = GetStartPoint();
QRect rect = QRect(newStartP, defaultSize);
setGeometry(rect);
}
3.鼠标释放事件:
if(event->button() == Qt::LeftButton && mouseStatus == moveStartStatus)
{
mouseStatus = moveEndStatus;
}
4.头文件定