QT QGraphicsView 在鼠标点击处进行放大缩小 程序员林夕 一、前段时间在用QGraphicsView对图元进行放大缩小时,发现图形总是越来越跑偏,无法像地图中那样,点击哪里就能放大哪个地方。如下所示:此时放大缩小的焦点并不在鼠标位置方法,使用QGraphicsView类的设置属性函数.在构造函数中增加下面两个函数即可。
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override; // 悬停事件函数,设置光标外观和提示 virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; // 右键菜单函数,为图形项添加一个右键菜单 virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; pri...
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(w...
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);//使图片缩放的...
Qt QGraphicsView应用:定点缩放 功能: 以鼠标位置为中心点定点缩放 原理说明 实现在光标位置缩放画布的效果可以理解为,光标所对应到画布上的坐标点在缩放之前和之后都继续对应在光标所在的位置。而一般缩放画布,画布会以画布的左上角为固定点缩放。 所以在每一次缩放完成后,我们需要把画布上 光标对应的位置 移动回去...
一、缩放与旋转 QGraphicsView通过 QGraphicsView::setMatrix() 支持和 QPainter 一样的仿射变换,通过对一个视图应用变换,你可以很容易地支持普通的导航特性如缩放与旋转。 #include <QApplication> #include <QGraphicsView> #include <QGraphicsScene>
interactive:获取或设置视图是否允许用户交互(如缩放、滚动)。 主要方法 setScene(QGraphicsScene *scene):设置 QGraphicsView 要显示的场景。 centerOn(const QPointF &point):将视图中心移动到指定的点。 scale(double factor):对视图进行缩放。 rotate(int degrees):旋转视图...
QGraphicsView 支持缩放与旋转通过 QGraphicsView::setMatrix(),实现自定义视图类 MyGraphicsView,包含缩放、旋转等槽函数。场景设置为背景红色,矩形图元颜色为蓝色,宽度10像素,可拖动。自定义按钮实现视图缩放和旋转功能,场景与视图集成,按钮触发视图操作。在 Qt 中打印支持独立的 printsupport 模块,...
void GraphicsView::setBaseAttribute(){// 设置场景QGraphicsScene *scene = new QGraphicsScene(this);scene->addText("Hello, MainWindow");setScene(scene);// 设置接收场景交互setInteractive(true);// 接收Drop事件setAcceptDrops(true);// 接收鼠标移动事件setMouseTracking(true);// CacheNone 所有的绘画都...