我想做鼠标拖动来移动窗体内容的效果,试着做了一下,但是有问题。我是这样做的:
1首先新建了两个滚动条并初始化
vScrollBar=verticalScrollBar();
hScrollBar=horizontalScrollBar();
2之后在鼠标移动事件中,来检测鼠标按键和移动,并设置滚动条的位置
mouseMoveEvent(QMouseEvent * event)
{
QPoint viewPoint=event->pos();//获取当前鼠标位置
int x,y;
x=viewPoint.x();
y=viewPoint.y();
xvalue=startPoint.x()-x;//startPoint是鼠标按键时记录的位置
yvalue=startPoint.y()-y;
if(event->buttons()&Qt::LeftButton) //判断移动鼠标时,左键键是否一直按下去
{
vScrollBar->setValue(vScrollBar->value()+yvalue);//按照鼠标移动的距离来设置滚动条的位置
hScrollBar->setValue(hScrollBar->value()+xvalue);
}
}
这样做的确可以拖动,但是拖动有延迟,而且一点也不灵敏。谁可以帮忙解决一下?或者是否有其他办法?