QT QGraphicsView 在鼠标点击处进行放大缩小 程序员林夕 一、前段时间在用QGraphicsView对图元进行放大缩小时,发现图形总是越来越跑偏,无法像地图中那样,点击哪里就能放大哪个地方。如下所示:此时放大缩小的焦点并不在鼠标位置方法,使用QGraphicsView类的设置属性函数.在构造函数中增加下面两个函数即可。
ui.View_ImageOpro->setResizeAnchor(QGraphicsView::AnchorUnderMouse); 1. 2. 此时以鼠标为中心的效果就出来了: 完整代码: MyGraphicsView::MyGraphicsView() { //设置ui控件属性 setDragMode(QGraphicsView::NoDrag);//(QGraphicsView::RubberBandDrag);//QGraphicsView::ScrollHandDragscale_m =1;//图形...
如下所示:此时放大缩小的焦点并不在鼠标位置 方法,使用QGraphicsView类的设置属性函数.在构造函数中增加下面两个函数即可。 ui.View_ImageOpro->setTransformationAnchor(QGraphicsView::AnchorUnderMouse); ui.View_ImageOpro->setResizeAnchor(QGraphicsView::AnchorUnderMouse); 此时以鼠标为中心的效果就出来了: 完整...
以鼠标位置为中心点定点缩放 原理说明 实现在光标位置缩放画布的效果可以理解为,光标所对应到画布上的坐标点在缩放之前和之后都继续对应在光标所在的位置。而一般缩放画布,画布会以画布的左上角为固定点缩放。 所以在每一次缩放完成后,我们需要把画布上 光标对应的位置 移动回去,就可以实现目的效果。 a.计算原理: 1...
qreal viewHeight=this->viewport()->height();//获取当前鼠标位置相当于view大小的横纵比例;qreal hScale = cursorPoint.x() /viewWidth; qreal vScale= cursorPoint.y() /viewHeight;//当前放缩倍数;qreal scaleFactor =this->matrix().m11();intwheelDeltaValue =event->delta();//向上滚动,放大;if(...
void FunctionView::mousePressEvent(QMouseEvent *event) { QGraphicsView::mousePressEvent(event); if(this->scene() == nullptr) { qDebug() << "The scene is null"; return; } // 记录鼠标按下时的中心点坐标 centerAnchor = mapToScene(event->pos()) - event->pos() + QPointF(width() ...
84 moveBy(-event->pos().x()*qrealOriginScale*0.1, -event->pos().y()*qrealOriginScale*0.1);//使图片缩放的效果看起来像是以鼠标所在点为中心进行缩放的 85 } 86 else 87 { 88 moveBy(event->pos().x()*qrealOriginScale*0.1, event->pos().y()*qrealOriginScale*0.1);//使图片缩放的...
在这个示例中,我们创建了一个 MainWindow 类,它包含一个 QGraphicsScene 和一个 QGraphicsView 控件。我们在场景中添加了一个蓝色的矩形,并将场景设置为视图的显示内容。我们还设置了视图的渲染提示和交互性。这样,用户就可以通过鼠标和滚轮与视图进行交互,如缩放和滚动,以查...
并根据图像的长宽和控件的长宽的比例来使图片缩放到适合控件的大小 void QImageWidget::setQGraphicsView...
并根据图像的长宽和控件的长宽的比例来使图片缩放到适合控件的大小 void QImageWidget::setQGraphicsView...