|
这里是在鼠标按下时开始对图片进行拖动,松开时结束,但是现在有时候在鼠标move时release鼠标,不会响应release事件
QT知识有限,求大神解答。
代码如下:
void ViewBrowser::mousePressEvent(QMouseEvent *event){
bIsmouseMove=true;
HTuple IsImage;
HTuple IsZoomImage;
CountObj(ho_ImageZoom,&IsZoomImage);
CountObj(img,&IsImage);
if(IsImage<1)
{
QMessageBox::warning(NULL,"Warning","No Image",QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes);
bIsmouseMove=false;
return;
}
mPX=0;
mPY=0;
if (event->button()==Qt:eftButton)
{
MousePressPoint = event->pos();
mSX=MousePressPoint.x();
mSY=MousePressPoint.y();
}
}
void ViewBrowser::mouseMoveEvent(QMouseEvent *event){
HTuple IsZoomImage;
CountObj(ho_ImageZoom,&IsZoomImage);
MousePoint=event->pos();
this->setMouseTracking(true);
mX=MousePoint.x();
mY=MousePoint.y();
if (bIsmouseMove==true)
{
if (mPX==0&&mPY==0)
{
disX=mSX-mX;
disY=mSY-mY;
}
else
{
disX=mPX-mX;
disY=mPY-mY;
}
f2=disX;
f2=f1+f2;
f1=f2;
g2=disY;
g2=g1+g2;
g1=g2;
s1=f1;
t1=g1;
if(IsZoomImage<1)
{
CloseWindow(hv_windowID);
OpenWindow(0,0,wid,hei,winID,"","",&hv_windowID);
SetPart(hv_windowID, g2, f2,hei-1+g2,wid-1+f2);
DispImage(img,hv_windowID);
}
else
{
CloseWindow(hv_windowID);
CloseWindow(hv_windowID2);
OpenWindow(0,0,wid,hei,winID,"","",&hv_windowID2);
SetPart(hv_windowID2, g2, f2,hei-1+g2,wid-1+f2);
DispImage(ho_ImageZoom,hv_windowID2);
}
mPX=MousePoint.x();
mPY=MousePoint.y();
}
}
void ViewBrowser::mouseReleaseEvent(QMouseEvent *event){
bIsmouseMove=false;
meX=event->x();
meY=event->y();
}
|
|