1. 继承QGraphicsView;

class MyGraphicsView : public QGraphicsView

2. 重写构造函数

MyGraphicsView(QGraphicsScene *scene, QWidget *parent = 0);

3.设置 scene 尺寸

scene->setSceneRect(0, 0, 1280, 720);

4. 重写paintEvent 函数,在其中设置世界坐标变换和缩放

    QPainter painter(viewport());painter.setWorldTransform(this->viewportTransform(), true);painter.scale(m_zoomLevel, m_zoomLevel);

5. 重写 wheelEvent 函数,

void QGraphicsView::wheelEvent(QWheelEvent* event)
{if (QApplication::keyboardModifiers() == Qt::ControlModifier) {qreal rate = event->delta() / 1200.00;m_zoomLevel += rate;updateZoomLevel(m_zoomLevel);}QGraphicsView::wheelEvent(event);
}
void MyGraphicsView::updateZoomLevel(qreal zoom)
{if (zoom >= 0.1 && zoom <= 9.99)m_zoomLevel = zoom;else if (zoom < 0.1)m_zoomLevel = 0.1;elsem_zoomLevel = 9.99;int x = (width() - width() * zoom) * 0.5;int y = (height() - height() * zoom) * 0.5;scene()->setSceneRect(x, y, width() * zoom - 4, height() * zoom - 4);viewport()->update();
}

QGraphicsView 的重绘,用viewport()->update(); 直接调update是调用view 的刷新,而不是scene的刷新。

QGraphicsView 的使用(滚轮缩放)相关推荐

  1. 正交相机下实现滚轮按钮拖动,滚动滚轮缩放的功能

    实现了一个功能,鼠标滚轮键按下可以拖动视野内的物体全体(其实是相机自己在移动),滚动滚轮可以缩放内容(其实是改变相机视野大小) 效果如下 代码奉上 1 using UnityEngine; 2 usi ...

  2. Winform中实现ZedGraph滚轮缩放后自动重新加载数据

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  3. Winform中设置ZedGraph鼠标滚轮缩放的灵敏度以及设置滚轮缩放的方式(鼠标焦点为中心还是图形中心点)

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  4. 百度地图滚轮缩放,所在点偏移问题

    提出问题 <!DOCTYPE html> <html><head><meta http-equiv="Content-Type" cont ...

  5. 如何使用Google Maps API禁用鼠标滚轮缩放

    我正在使用Google Maps API(v3)在页面上绘制一些地图. 我想做的一件事是在地图上滚动鼠标滚轮时禁用缩放,但我不确定如何. 我已禁用scaleControl(即删除了缩放UI元素),但这 ...

  6. VUE3 实现前台图片标注添加矩形框、图片放大、缩小、鼠标滚轮缩放

    VUE3 实现前台图片标注 功能包括: 鼠标左键拖动添加矩形框标记区域,鼠标点击已绘制的矩形: 选中矩形,并绘制不同选中效果: 鼠标在已绘制的矩形中按住左键拖动,选中并移动矩形:选中矩形后鼠标在选中矩 ...

  7. webstorm在哪里设置Ctrl+鼠标滚轮缩放界面大小教程

    webstorm在哪里设置Ctrl+鼠标滚轮缩放界面大小教程 步骤如下: ①.打开webstorm软件,点击左上角的file ②.点击Setting(设置) ③.点击Editor ④.点击Genera ...

  8. unity 鼠标拖动UI 滚轮缩放大小

    using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...

  9. 放大缩小不习惯?只需两步教你solid works如何设置反转滚轮缩放

    第一步,打开设置 第二步,在 "设置-视图" 中勾选 "反转鼠标滚轮缩放方向"最后点击确定  OK,现在缩放视图就更适合大部分人的习惯了.

  10. webstorm设置Ctrl+滚轮缩放字体大小

    webstorm设置Ctrl+滚轮缩放字体大小 1.打开webstorm软件,点击左上角的file 2.点击Setting(设置) 3.点击Editor 4.点击General 5.勾选右侧的Chan ...

最新文章

  1. STM32F0使用LL库实现Modbus通讯
  2. React 项目--button 绑定事件(15)
  3. 今天看到这篇新闻之后,决定休息一下咯
  4. sql server中创建数据库和表的语法
  5. 关于不过洋节的通知_平安夜、圣诞节安全教育告家长通知书
  6. 【深入浅出etcd系列】4. 客户端
  7. django处理select下拉表单(从model到前端到post到form)
  8. python qt5 数据改变 触发信号_pyqt5自定义信号实例解析
  9. c++中*是什么意思_int在python中什么意思
  10. left join on 左边为主
  11. 【渝粤教育】国家开放大学2018年秋季 7160-22T卫生法学 参考试题
  12. 宝塔界面,添加数据库,数据库管理密码错误!
  13. C# Access 读写数据库
  14. 互动投影游戏加密狗复制教程!
  15. 《大般涅槃经》略释 净慧法师
  16. java 数据库异常,数据库常见异常
  17. 出现—passwd:Authentication token manipulation error—错误的解决办法
  18. vue3+tsx 踩坑
  19. DOS时代后,金山系再出神级办公软件,会像WPS一样普及
  20. 必看:C语言高效学习方法(附经典试题详解)

热门文章

  1. nginx配置转发ws协议
  2. 暴雪赢得魔兽世界私服诉讼 获赔8800万美元
  3. MacOS 合并一个磁盘下的两个分区
  4. javascript延迟加载方式
  5. 怎么将Excel中红色字体颜色数据提取出来
  6. 转载一下:当一个男人做出这些事,他真的很爱你了
  7. 关于如何设置IDEA自动刷新项目目录
  8. 任务管理(job control)
  9. 小米路由器4c刷Openwrt安装softether
  10. MyBatis十:逆向工程(QBC风格)