与google.com/maps类似,我希望这样做,以便如果鼠标悬停在QGraphicsItem上,则当前后移动滚轮鼠标时,鼠标下方图像的区域就是QGraphicsView的中心。

我可以在创建的自定义QGraphicsIte的wheelEvent方法中完成此操作吗?

我有一些这样的代码

update();
qreal factor = 1.2;
if (event->delta() < 0)
  factor = 1.0 / factor;
scale(factor, factor);
scaleFactor *=factor;
this->scene()->setSceneRect(0,0,this->boundingRect().width(), this->boundingRect().height());


我可以添加些什么以获得所需的效果?

例如,在Google地图中,如果将鼠标悬停在犹他州上,并继续使用滚轮鼠标进行放大,那么最终,犹他州就是视口中唯一剩下的东西。

最佳答案

另请参见setTransformationAnchor( QGraphicsView::AnchorUnderMouse );


http://doc.qt.io/qt-4.8/qgraphicsview.html#ViewportAnchor-enum

关于c++ - 在Qt 4中直接在鼠标下缩放图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5107826/

10-12 21:39