QGraphicsView 的使用(滚轮缩放)
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 using UnityEngine; 2 usi ...
- Winform中实现ZedGraph滚轮缩放后自动重新加载数据
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Winform中设置ZedGraph鼠标滚轮缩放的灵敏度以及设置滚轮缩放的方式(鼠标焦点为中心还是图形中心点)
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- 百度地图滚轮缩放,所在点偏移问题
提出问题 <!DOCTYPE html> <html><head><meta http-equiv="Content-Type" cont ...
- 如何使用Google Maps API禁用鼠标滚轮缩放
我正在使用Google Maps API(v3)在页面上绘制一些地图. 我想做的一件事是在地图上滚动鼠标滚轮时禁用缩放,但我不确定如何. 我已禁用scaleControl(即删除了缩放UI元素),但这 ...
- VUE3 实现前台图片标注添加矩形框、图片放大、缩小、鼠标滚轮缩放
VUE3 实现前台图片标注 功能包括: 鼠标左键拖动添加矩形框标记区域,鼠标点击已绘制的矩形: 选中矩形,并绘制不同选中效果: 鼠标在已绘制的矩形中按住左键拖动,选中并移动矩形:选中矩形后鼠标在选中矩 ...
- webstorm在哪里设置Ctrl+鼠标滚轮缩放界面大小教程
webstorm在哪里设置Ctrl+鼠标滚轮缩放界面大小教程 步骤如下: ①.打开webstorm软件,点击左上角的file ②.点击Setting(设置) ③.点击Editor ④.点击Genera ...
- unity 鼠标拖动UI 滚轮缩放大小
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...
- 放大缩小不习惯?只需两步教你solid works如何设置反转滚轮缩放
第一步,打开设置 第二步,在 "设置-视图" 中勾选 "反转鼠标滚轮缩放方向"最后点击确定 OK,现在缩放视图就更适合大部分人的习惯了.
- webstorm设置Ctrl+滚轮缩放字体大小
webstorm设置Ctrl+滚轮缩放字体大小 1.打开webstorm软件,点击左上角的file 2.点击Setting(设置) 3.点击Editor 4.点击General 5.勾选右侧的Chan ...
最新文章
- STM32F0使用LL库实现Modbus通讯
- React 项目--button 绑定事件(15)
- 今天看到这篇新闻之后,决定休息一下咯
- sql server中创建数据库和表的语法
- 关于不过洋节的通知_平安夜、圣诞节安全教育告家长通知书
- 【深入浅出etcd系列】4. 客户端
- django处理select下拉表单(从model到前端到post到form)
- python qt5 数据改变 触发信号_pyqt5自定义信号实例解析
- c++中*是什么意思_int在python中什么意思
- left join on 左边为主
- 【渝粤教育】国家开放大学2018年秋季 7160-22T卫生法学 参考试题
- 宝塔界面,添加数据库,数据库管理密码错误!
- C# Access 读写数据库
- 互动投影游戏加密狗复制教程!
- 《大般涅槃经》略释 净慧法师
- java 数据库异常,数据库常见异常
- 出现—passwd:Authentication token manipulation error—错误的解决办法
- vue3+tsx 踩坑
- DOS时代后,金山系再出神级办公软件,会像WPS一样普及
- 必看:C语言高效学习方法(附经典试题详解)