我重新了mouseMoveEvent,因为希望没按下左键时可以随时显示鼠标所在的地图坐标,代码如下:
void MapWidget::mousePressEvent ( QMouseEvent * event )
{
initialPos=event->pos();
initialScenePos=this->mapToScene(400,375);//我的视窗是800*750,所以中间坐标是(400,375)
}
void MapWidget::mouseMoveEvent(QMouseEvent * event)
{
if(event->buttons()==Qt::LeftButton)
{
QPoint endPoint = event->pos();
this->centerOn(initialScenePos.x()+endPoint.x()-initialPos.x(),initialScenePos.y()+endPoint.y()-initialPos.y());
}
else
{
// view coordinate
QPoint viewPoint = event->pos();
viewCoord->setText(QString::number(viewPoint.x()) + ", " + QString::number(viewPoint.y()));
}
}
我利用endPoint.x()-initialPos.x()获得坐标的前后差值,但现在问题时
原始的center坐标我不知道要如果获得[/color,有没有那位前辈能指点下, 谢谢
ps:睡眠不足头脑就是比较钝..........其中initialScenePos,initialPos是在类中定义的QPointF和QPointF类对象[ 此帖被nanguaemail在2010-05-23 17:05重新编辑 ]