scale()方法可以用于直接设置缩放比例。这个方法接受两个参数,分别表示在X轴和Y轴上的缩放因子。 3. 根据需要调整QGraphicsView的缩放中心点 默认情况下,缩放操作会以视图的中心点为基准进行。如果你希望以其他点为中心进行缩放,可以先将该点移动到视图中心,然后进行缩放,最后再移动回去。
voidQGraphicsView::centerOn(constQPointF &pos) cneterOn函数接受一个point参数,用于定义view的中心位置,应该展示scene坐标的什么位置。 注意,这个移动是有极限的,如果scene尺寸本身就大于view,那么不会将scene移出view的范围,换言之,如论如何移动,scene一定会完全包围view。 那么我们思路就十分清晰了。如果我们想移动...
void QGraphicsView::centerOn(const QPointF &pos) cneterOn函数接受一个point参数,用于定义view的中心位置,应该展示scene坐标的什么位置。 注意,这个移动是有极限的,如果scene尺寸本身就大于view,那么不会将scene移出view的范围,换言之,如论如何移动,scene一定会完全包围view。 那么我们思路就十分清晰了。如果我们想...
cneterOn函数接受一个point参数,用于定义view的中心位置,应该展示scene坐标的什么位置。 注意,这个移动是有极限的,如果scene尺寸本身就大于view,那么不会将scene移出view的范围,换言之,如论如何移动,scene一定会完全包围view。 那么我们思路就十分清晰了。如果我们想移动一个距离,假设移动的距离为offsetPoint,获取一个当...
Qt QGraphicsView应用:定点缩放 功能: 以鼠标位置为中心点定点缩放 原理说明 实现在光标位置缩放画布的效果可以理解为,光标所对应到画布上的坐标点在缩放之前和之后都继续对应在光标所在的位置。而一般缩放画布,画布会以画布的左上角为固定点缩放。 所以在每一次缩放完成后,我们需要把画布上 光标对应的位置 移动回去...
功能: 以鼠标位置为中心点定点缩放 原理说明 实现在光标位置缩放画布的效果可以理解为,光标所对应到画布上的坐标点在缩放之前和之后都继续对应在光标所在的位置。而一般缩放画布,画...
执行缩放。 获取scencePos 对应的新的视图坐标 curPoint 。 移动滚动条到 curPoint 的位置。 效果如下: 放大前 放大后 代码如下: voidPolarView::wheelEvent(QWheelEvent*event){// 获取当前鼠标相对于view的位置;QPointF cursorPoint=event->pos();// 获取当前鼠标相对于scene的位置;QPointF scenePos=this->map...
QGraphicsView使用QTransform支持仿射转换。可以将矩阵传递给setTransform(),也可以调用便利函数rotate()、scale()、translate()或shear()。最常见的两种转换是缩放,用于实现缩放和旋转。QGraphicsView在转换期间保持视图中心不变。由于场景对齐(setAligment()),转换视图不会产生视觉影响。
moveBy(event->pos().x() * qrealOriginScale * 0.1, event->pos().y() * qrealOriginScale * 0.1);//使图片缩放的效果看起来像是以鼠标所在点为中心进行缩放的 } } } void ImageWidget::setQGraphicsViewWH(int nwidth, int nheight)//将主界面的控件QGraphicsView的width和height传进本类中,并根...
2.1 缩放与旋转 在前面项目基础上,我们添加处理类,代码如下: #ifndef MYVIEW_H #define MYVIEW_H #include <QGraphicsView> #include <QWheelEvent > class MyView : public QGraphicsView { public: MyView(); protected: void wheelEvent(QWheelEvent *event)override;//鼠标滚轮事件 ...