一、滚轮放大缩小

QWT中提供了QwtPlotMagnifier类,用于实现鼠标滚轮放大和缩小图形的效果,其实本质就是修改x轴和y轴的范围。


二、拖拽视窗

QWT中提供了QwtPlotPanner类,用于实现鼠标拖动画布的效果,其实本质就是修改x轴和y轴的范围。


附一

各种功能有时候可能会发生冲突,例如框选放大功能和拖拽视窗功能都需要鼠标点击移动事件。如果两个功能同时开启的话,效果就会很糟糕,所以可以给每个功能加一个开关,由用户来自己调节:

//头文件
QwtPlotZoomer *plot_zoomer;          //框选放大
QwtPlotMagnifier *plot_magnifier;    //滚轮放大缩小
QwtPlotPanner *plot_panner;          //拖拽视窗//构造函数
plot_zoomer = NULL;
plot_magnifier = NULL;
plot_panner = NULL;//开关函数
void Plot_View::switch_rect_in(bool on_or_off)
{if(on_or_off){plot_zoomer = new QwtPlotZoomer(current_x,current_y,this->canvas());//设置鼠标键为功能键plot_zoomer->setMousePattern(QwtEventPattern::MouseSelect3, Qt::MidButton );plot_zoomer->setMousePattern(QwtEventPattern::MouseSelect6, Qt::MidButton, Qt::ControlModifier );plot_zoomer->setMousePattern(QwtEventPattern::MouseSelect2, Qt::MidButton, Qt::ShiftModifier );//设置键盘按键为功能键plot_zoomer->setKeyPattern(QwtEventPattern::KeyRedo,Qt::Key_I);plot_zoomer->setKeyPattern(QwtEventPattern::KeyUndo,Qt::Key_O);plot_zoomer->setKeyPattern(QwtEventPattern::KeyHome,Qt::Key_Home);}else{delete plot_zoomer;plot_zoomer = NULL;}
}
void Plot_View::switch_in_out(bool on_or_off)
{if(on_or_off){plot_magnifier = new QwtPlotMagnifier(this->canvas());}else{delete plot_magnifier;plot_magnifier = NULL;}
}
void Plot_View::switch_drag(bool on_or_off)
{if(on_or_off){plot_panner = new QwtPlotPanner(this->canvas());}else{delete plot_panner;plot_panner = NULL;}
}

QWT--滚轮放大缩小和拖拽视窗相关推荐

  1. canvas图形放大缩小鼠标拖拽

    canvas图形放大缩小鼠标拖拽 在网上找的都是放大缩小,或者鼠标拖拽,没有两者都满足的 一开始我天真的以为两个合并就可以了,但其实当鼠标松开和点击的时候,坐标原点是会变的,就是每次拖拽都是清除之前, ...

  2. jquery ui放大缩小_jQuery拖拽放大缩小插件idrag

    插件描述:24行代码,让你的网页元素任意放大.缩小.拖拽.移动 基于jQuery:$(document).mousemove(function(e) { if (!!this.move) { var  ...

  3. jtopo新增节点(拖拽节点到画布),<画布放大缩小或拖拽后,新增节点还在鼠标松开得位置>

    效果图如下,具体我是参照在github上下载的源码写的,链接不记得了,如果原作者看到了,可以联系我删博 代码如下:<但是此代码在画布拖拽,放大,缩小后,新增节点的位置不是鼠标松开时的位置> ...

  4. VUE实现前台图片 标注(添加矩形框)、放大、缩小、拖拽

    需求:实现图片上自定义多个矩形选框,选框可移动缩放拖动,图片可以放大缩小.拖拽 ,选框内填充标注文字. 框内填充文字基本都会,不多赘述,后期可添加选框移除功能(思路右击选框弹出选项删除,获取当前点击选 ...

  5. VUE实现前台图片 标注(添加矩形框)、放大、缩小、拖拽 -----个人记录

    VUE实现前台图片 标注(添加矩形框).放大.缩小.拖拽 需求:实现图片上自定义多个矩形选框,选框可移动缩放拖动,图片可以放大缩小.拖拽 ,选框内填充标注文字. 框内填充文字基本都会,不多赘述,后期可 ...

  6. 前端图片拖拽,滚轮放大缩小

    拖拽 var offX = 0,offY = 0; onMouseDown(ev) {var svgId = document.getElementById("svgId");sv ...

  7. jquery图片查看插件,支持旋转、放大、缩小、拖拽、缩略图(仿qq图片查看)

    最近做了一个jquery图片查看的插件,目的是能精确查看图片的详情,插件支持图片旋转.放大.缩小.拖拽.缩略图显示,界面效果是按照window的qq查看图片功能写的,当然不尽相同. 具体功能: 多张图 ...

  8. 可拖拽,拉伸的盒子(类似我们的桌面应用框,可以拉伸放大,可以拖拽移动)

    类似我们的桌面应用框,可以拉伸放大,可以拖拽移动 基于上一篇,我们至于要加上另外两边和另外三个角 只是剩下的拉伸,不仅仅要改变盒子的宽,还要改变left/top了 原本以为很简单的加个left就好了, ...

  9. C#制作一个图片查看器,具有滚轮放大缩小,鼠标拖动,图像像素化,显示颜色RGB信息功能

    目录 前言 一.界面设计 二.关键技术 1.把图片拖入到窗体并显示 2.实现图像缩放的功能 3.实现图像的移动效果 4.实时显示当前鼠标处的RGB值 5. 右击功能的实现 6.效果展示 总结 前言 使 ...

最新文章

  1. 关于php抓取页面信息的简单代码
  2. 单片机学习应用六大重要部分
  3. java8生成jsp页面内容组装到jsp中_JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...
  4. 笔记-高项案例题-2017年下-整体管理-变更管理
  5. 修改el-table滚动条样式
  6. macos实现输入文件输入结束符
  7. 阿里云Https部署网站
  8. cdoj 1252 24点游戏 dfs
  9. 【Oracle】DataGuard中 Switchover 主、备切换
  10. mysql中datetime有带时区_当服务器时区不是UTC时,从Java中检索来自MySQL的UTC DATETIME字段...
  11. 精通版本之Subversion
  12. 分享Silverlight/WPF/Windows Phone一周学习导读(8月22日-8月27日)
  13. vue + element ui 阻止表单输入框回车刷新页面
  14. 【数据分析系列】Python数据预处理总结篇
  15. 2021年4月12日 关于VRRP!!!
  16. springMVC-RESTful约束下dispatcher拦截对象优化
  17. 多智能体强化学习:合作关系设定下的多智能体强化学习
  18. [学习笔记]使用GNU Toolchain在STM32上跑起一个最小OS
  19. 数组下标越界解析(以C语言为例)
  20. 【Proteus仿真】74HC165功能验证

热门文章

  1. 局域网SDN技术硬核内幕 二 云网CP的日常恩爱——硬件VXLAN转发平面
  2. python代码变量作业_1作业python数据类型 条件循环 列表
  3. #C语言[Basic I/O] A-B
  4. 沃特金斯将军、钱德勒上校、兰德里上校、阿代尔先生
  5. 爱签电子合同助力无纸化办公,青岛将推行存量房网签合同电子签名
  6. 洛谷P1551亲戚题解
  7. 【git】git下拉项目Pulling is not possible because you have unmerged files解决方案
  8. PWM的周期和占空比是如何计算
  9. 携程2021春招笔试
  10. UDP传输rtp数据包丢帧