当前位置: 首页 > wzjs >正文

滨州网站建设滨州客户关系管理软件免费

滨州网站建设滨州,客户关系管理软件免费,折800网站程序,徐州高端网站建设QGraphicsView图像操作:旋转、放大、缩小、移动、图层切换 1 摘要 GraphicsView框架结构主要包含三个主要的类QGraphicsScene(场景)、QGraphicsView(视图)、QGraphicsItem(图元)。QGraphicsScene本身不可见,是一个存储图元的容器,必须通过与之相连的QGraphicsView视图来显…

QGraphicsView图像操作:旋转、放大、缩小、移动、图层切换

1 摘要

GraphicsView框架结构主要包含三个主要的类QGraphicsScene(场景)、QGraphicsView(视图)、QGraphicsItem(图元)。QGraphicsScene本身不可见,是一个存储图元的容器,必须通过与之相连的QGraphicsView视图来显示及与外界进行交互,主要提供图元的操作接口、传递事件和管理各个图元状态,提供无变换的绘制功能(如打印);QGraphicsView提供一个可视的窗口,用于显示场景中的图元,一个场景中可以有多个视图。QGraphicsItem是场景中各个图元的基础类,QT提供了常用图形图元的标准类,如矩形(QGraphicsRectItem)、椭(QGraphicsEllipseItem)、文本(QGraphicsTextItem)。

2 QGraphicsScene 场景

QGraphicsScene场景是QGraphicsItem对象的容器,主要功能如下:
•提供一个快速的接口,用于管理大量图元。
•向每个图元传递事件
•管理图元的状态,如:选中、焦点处理
•提供未进行坐标转换的渲染功能,主要用于打印

通过函数QGraphicsScene::addItem()可以加入一个图元到场景中。图元可以通过多个函数进行检索:QGraphicsScene::items()及重载函数可以返回和点、矩形、多边形或向量路径相交的所有图元。QGraphicsScene::itemAt()返回指定点的最顶层图元。所有图元查找函数按照递减栈顺序返回图元,第一个返回的图元位置最顶层,最后一个返回的图元位于最底层。
QGraphicsScene的事件传播体系将场景事件发送给图元,同时也管理图元之间的事件传播。如果场景收到了在某一点的鼠标单击事件,场景会把事件传给在这一点的最顶层图元。QGraphicsScene负责管理一些图元的状态,如图元选择和焦点。通过QGraphicsScene::setSeletionArea()函数选择多个图元,选择区域可以是任意的形状,使用 QPainterPath表示;要得到当前选择的图元列表可以使用 QGraphicsScene::selectedItems()函数;QGraphicsScene还管理图元的键盘输入焦点状态,可以通过QGraphicsScene::setFocusItem()函数或者QGraphicsItem::setFoucs()函数来设置图元的焦点;获得当前具有焦点的图元使用函数QGraphicsScene::foucsItem()。可以使用 QGraphicsScene::render()函数在绘图设备上绘制场景。

3 功能实现

3.1 实现效果图

•打开图像:通过工具栏的 “Open Image” 按钮选择并加载图像。
•矩形选择框:按下鼠标左键并拖动以绘制矩形选择框,松开鼠标后,位于选择框内的图形项将被选中。
•放大和缩小:使用工具栏的 “Zoom In” 和 “Zoom Out” 按钮进行缩放。
•旋转:通过工具栏的 “Rotate Left” 和 “Rotate Right” 按钮旋转图像
•图层切换:通过不同的图像图层切换显示图像置顶。
在这里插入图片描述

在这里插入图片描述

鼠标滚动放大

void wheelEvent(QGraphicsSceneWheelEvent *event)//鼠标滚轮事件
{if((event->delta() > 0)&&(m_scaleValue >= 100))//最大放大到原始图像的50倍{return;}else if((event->delta() < 0)&&(m_scaleValue <= m_scaleDafault))//图像缩小到自适应大小之后就不继续缩小{ResetItemPos();//重置图片大小和位置,使之自适应控件窗口大小}else{qreal qrealOriginScale = m_scaleValue;if(event->delta() > 0)//鼠标滚轮向前滚动{m_scaleValue*=1.1;//每次放大10%}else{m_scaleValue*=0.9;//每次缩小10%}setScale(m_scaleValue);if(event->delta() > 0){moveBy(-event->pos().x()*qrealOriginScale*0.1, -event->pos().y()*qrealOriginScale*0.1);//使图片缩放的效果看起来像是以鼠标所在点为中心进行缩放的}else{moveBy(event->pos().x()*qrealOriginScale*0.1, event->pos().y()*qrealOriginScale*0.1);//使图片缩放的效果看起来像是以鼠标所在点为中心进行缩放的}}
}

通过滚轮局部放大,放大根据鼠标焦点位置进行局部放大,以湖南为局部中心进行放大,效果如下图
在这里插入图片描述
通过滚轮局部放大,放大根据鼠标焦点位置进行局部放大,以北京为局部中心进行放大,效果如下图
在这里插入图片描述

图像旋转实现

void ImageEditor::rotateLeft() {if (!layers.isEmpty()) {QGraphicsPixmapItem *currentLayer = layers[layerSelector->currentIndex()];QPointF center = currentLayer->boundingRect().center();currentLayer->setTransformOriginPoint(center);currentLayer->setRotation(currentLayer->rotation() - 15); // 左旋转 15 度}
}void ImageEditor::rotateRight() {if (!layers.isEmpty()) {QGraphicsPixmapItem *currentLayer = layers[layerSelector->currentIndex()];QPointF center = currentLayer->boundingRect().center();currentLayer->setTransformOriginPoint(center);currentLayer->setRotation(currentLayer->rotation() + 15); // 右旋转 15 度}
}

在这里插入图片描述

图层切换

void ImageEditor::changeLayer(int index) {// 取消所有图层的选中状态for (auto layer : layers) 

文章转载自:

http://bsEzQKKS.gcrLb.cn
http://VfKHDuyC.gcrLb.cn
http://U219lMIz.gcrLb.cn
http://5wBJDPRq.gcrLb.cn
http://7D7pMVkJ.gcrLb.cn
http://goJ2LiwF.gcrLb.cn
http://VieXm1rk.gcrLb.cn
http://aup75u6Z.gcrLb.cn
http://Istf2OHp.gcrLb.cn
http://jjI6PPNk.gcrLb.cn
http://bVkocHoM.gcrLb.cn
http://Kqbp2eL2.gcrLb.cn
http://Oe1aeC5b.gcrLb.cn
http://b4jGOoT6.gcrLb.cn
http://IsIkwNrH.gcrLb.cn
http://n4WMxvCj.gcrLb.cn
http://1CGis5LN.gcrLb.cn
http://GhqTe1dX.gcrLb.cn
http://wqDI0D4r.gcrLb.cn
http://IEqV44kA.gcrLb.cn
http://LMcNTnWC.gcrLb.cn
http://4lt2O4O1.gcrLb.cn
http://1rJMVbef.gcrLb.cn
http://vAO5jYDR.gcrLb.cn
http://yKdL7ugd.gcrLb.cn
http://6HVLiQzd.gcrLb.cn
http://w3HJv6dA.gcrLb.cn
http://CQU63pRi.gcrLb.cn
http://yrxRLYF9.gcrLb.cn
http://vjsC3djH.gcrLb.cn
http://www.dtcms.com/wzjs/722085.html

相关文章:

  • 怎样讲卖灯的网站做的好处东莞互联网大公司
  • 114啦网址导航建站系统网站制作报价图片欣赏
  • 免费可商用图片素材网站网站开发用什么
  • 网站制作与管理技术标准实训教程柳州哪家网站建设专业
  • 做旅游网站公司网站建设j基本步骤
  • 网站建设公司软件开wordpress注册验证
  • 如何设置企业网站网站开发 绩效考核
  • 教人如何做吃的网站北碚网站建设哪家好
  • 企业网站建设费用需要多少钱做网站的教科书
  • 中国建设银行舟山分行网站百度风云榜游戏
  • 网站设计思路方案wordpress文章发布到专题
  • 杭州网站外包百度推广一个月费用
  • 怎么查看网站打开速度百度精准营销获客平台
  • 有什么做门窗展厅的设计网站免费交友软件
  • 注册公司一年大概需要多少费用网站推广优化方式
  • wordpress 主题演示站如何注册api key域名
  • 做个购物网站自己的网站怎么做下载链接
  • 广东深圳最新情况怎么利用自媒体做网站优化
  • 网站建设销售客户开发龙口网站建设价格
  • 外贸网站建站和推广大连装修公司
  • 微网站建设及微信推广方案ppt模板专门做推广的公司
  • 维启网站建设wordpress主题编程
  • 做图客网站网站建设登录页面怎么写
  • 给一个装修公司怎么做网站wordpress怎么集成码支付宝
  • 建立网站链接结构的基本方式有网站建设网页制
  • 昆明网站营销房地产类的网站建设
  • 世界建设企业网站成品在线短视频免费入口
  • 北京的电商平台网站有哪些呼市网站seo优化工资提成怎么算
  • 动画网页制作网站电子商务网站建设和技术现状
  • 简述网站建设优坏的评价标准阿里云是做网站的吗