首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

9.5 QGraphicsView视图框架

9.5 QGraphicsView视图框架 Qt Graphics View 用于管理交互大量定制的 2D 图形对象,提供了可视化显示对象的视图 widget,支持缩放和旋转功能。...Graphics View框架包含了一个事件传播构架,允许与场景的图元进行交互。比如:可以处理键盘事件,鼠标移动、松开、双击事件,并且可以跟踪鼠标移动。...Qt Graphics View框架结构主要包含三个类:场景类(QGraphicsScene)、视图类(QGraphicsView)、图元类(QGraphicsItem)。...其中,场景类(QGraphicsScene)是用于管理大量图元对象的容器,视图类(QGraphicsView)是用于显示场景的图元对象。...它们三者之间的关系:场景类相当于一张画布,图元类(QGraphicsItem)相当于画笔,画布上绘制了各种图形后,需要将画布挂到墙壁上展示,视图类就相当于用于展示画布的这一堵墙。

48010

【QT】图形视图、动画框架

图形视图框架提供了基于图像项模型的模型视图编程方法,主要由场景、视图和图形项这三部分组成,这三部分分别由QGraphicsScene、QGraphicsView、QGraphicsItem这三个类来表示...图形项可以处理键盘事件,鼠标事件,如鼠标按下事件、移动、释放及双击事件,还可以跟踪鼠标的移动。...//为图形项设置焦点 QGraphicsScene::focusItem() //获取当前获得焦点的图形项 QGraphicsScene::render() //将场景的一部分渲染到绘图设备上...QGraphicsScene::setSelectionArea() //传递一个任意形状来选择场景中指定的图形项 视图 QGraphicsView提供了视图部件,它用来使场景的内容可视化。...一个图像项可以接收悬停事件,当鼠标进入它的区域之中时,它就会收到一个QGraphicsSceneHoverEnter事件,鼠标图像项的区域移动时,QGraphicsScene就会向该图像项发送GraphicsSceneHoverLeave

1.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

PyQt5使用图元实现高效绘制场景

通过使用 PyQt 的图形视图,您可以 Python 访问这个高性能的图形层。...Qt图形视图框架组件 Qt图形视图框架是基于Model-View的架构实现的,主要包含三个相关Qt对象组件分别是: QGraphicsView QGraphicsScene QGraphicsItem...其中QGraphicsScene可以看成是Model-View架构的Model部分;QGraphicsView可以看成是Model-View架构的View部分;每个Scene绑定到多个View、QGraphicsItem...可以是Model的一部分、表示的是各种图元对象,最终都需要添加到Scene,然后跟View绑定以后才可以显示出来。...QGraphicsScene主要的功能有以下: - 负责检测图元对象是否重叠跟交会 - 负责图元选择与编辑管理 - 负责查找与发现图元对象跟位置 - 负责接受信号事件传递给图元 Qt图形视图框架使用

9010

基于Qt的流程设计器(一)

) 三: CustomView类是我们的绘图面板,这个类继承自QGraphicsView 在这个类的构造函数,我们创建了他的QGraphicsScene 设置了它的大小(这也是为什么我们的绘图板有滚动条的原因...) 另外需要注意的是QGraphicsScene的坐标原点在中心位置,如下图所示 四: CustomArrow是描述箭头连线的类: 这个类继承自QGraphicsItem boundingRect...接下来是计算出箭头的两个点arrowP1和arrowP2 六: 绘制箭头的工作是CustomArrow的paint函数完成的,代码如下所示 箭头只不过是一个多边形,用drawPolygon画出来的...七: CustomRect继承自QGraphicsRectItem 在这个类型,我们重载了itemChange函数,代码如下 当当前方框节点移动后,与这个节点相关的箭头都要跟着移动 Arrows...,还是点击画布的空白处了 接下来判断箭头按钮是不是处于选中状态 再往下判断是不是已经记录了起始方框,如果没记录,那么就记录返回 再接下来,就意味着用户是点击的结束方框,这时要绘制一个箭头了, 当然首先要判断是不是已经存在了同样的箭头

1.5K60

Qt官方示例-拖放机器人

❝拖放机器人示例演示如何在QGraphicsItem子类实现拖放,以及如何使用Qt的Animation Framework动画化项目。❞ ?   ...Graphics View提供了QGraphicsScene类,用于管理从QGraphicsItem类派生的大量定制2D图形项目,并与之交互;还提供了QGraphicsView小部件,用于可视化项目,支持缩放和旋转...构造函数主体,我们通过调用setAcceptDrops(true)来支持接受放置事件。...我们检查拖动对象是否包含图像数据,如果包含,则将其存储为成员pixmap调用update()。此像素图用于paint()实现。   ...每个项目都添加到场景。   在此圆的中心,我们创建一个Robot实例。缩放机器人并将其向上移动几个单元。然后将其添加到场景

4.7K41

qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

qt中提供了QGphicsView,QGraphicsSceneQGraphicsItem,QGraphicsPixmapItem是QGraphicsItem的子类 分辨创建它们的实例:view,scene...程序的item能够水平拖动,拖动的同一时候图标大小会渐变,中间最大,两边渐小。...mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { releasePos = event->scenePos(); } 再看nodeui.h与nodeui.cpp,原来的...//推断根据是当前单击的nodeui对象的pos与存储nodeUiPosListsd的位置比較,相等则为单击 bool MainWindow::isNodeUiClicked() { int...w.showFullScreen(); return a.exec(); } 大概都写了注解了,事实上看看一个名称也该大概了解其作用,写这程序时遇到的问题都记录在了前一篇qt学习笔记(四)

1.5K10

PyQt5 图形项的定义和交互(一)

但如果需要绘制大量的单个项,或者是需要绘制用户能够进行单独交互的项(例如选中、移动、复制粘贴...)...在场景绘制的项都是QGraphicsItem的子类(图形项)。 图形视图类的一个强大的功能是对图形项应用视图变换,例如缩放和旋转,这些变换可以影响场景的呈现方式,但不会改变图形项的自身类容。...视图使用的是物理坐标系(viewport),场景使用的是逻辑坐标系(window),这个坐标系是创建场景时选择的。在对项进行定位时,是使用逻辑坐标系的方式来放置它们。...__init__(text) #设置图形项为 可选中、可移动 self.setFlags(QGraphicsItem.ItemIsSelectable|QGraphicsItem.ItemIsMovable...__init__() #属性设为可选、可移动、可聚焦 self.setFlags(QGraphicsItem.ItemIsSelectable|

1.8K40

QT实现机器视觉最常用的图像查看器(源码)

机器视觉行业中最常见的控件就是图像查看器了,使用QT实现其实也非常简单,我出的项目【降龙:算法软件框架】和【重明:工业相机二次开发】中都有用到。...但在视图模型,会有三个东西,分别是: Graphics Scene:场景 /场景管理器( Scene 同时担负着管理场景的对象,建立索引等工作)。...Graphics Item:场景可以被显示的元素,可以是我们的图像,也可以是矩形圆形等任何东西。...调用也很简单,如下所示: //创建Scene QGraphicsScene* pScene = new QGraphicsScene(this); //创建View并为其绑定Scene QGraphicsView...视图居中 void CustomGraphicsView::onCenter() { //调用QGraphicsView自带的方法centerOn,使视觉窗口的中心位于图像元素的中心点 //设置

21510

移动硬盘安装Kali Linux使其可以uefi启动

由于这次是准备完全将Kali Linux安装在移动硬盘上面,类似于winpe那样的,故需要借助虚拟机进行安装 图片 首先使用”自定义“新建一个虚拟机 图片 新建的时候选择事先准备好的Kali安装盘ISO...两个随便选一个 图片 这里是较为关键的一步,选择”使用物理磁盘“ 然后选择移动硬盘,使用整个磁盘 选择完成之后进到虚拟机的设置里面,”高级“里面将固件类型改为uefi(注:此处如果是打算让移动硬盘同时可以启动...legacy和uefi的话网上的教程说是先用legacy启动,然后安装,紧接着用uefi启动,再安装一遍,由于我一开始就用uefi,然后又启动之后在里面装了一堆软件,懒得折腾了,故没有弄双启动) 开始安装之前检查一下磁盘...Windows的情况下安装原生Debian组双系统》类似,但比那个简单,因为这是单Linux系统,那个是Windows & Linux双系统 等待安装程序准备 主机名,随便设置一个就好 用户名,...,这个时候这块硬盘还是不能引导我电脑启动的,得做一些小改动,使用diskgenius进到esp分区,将文件夹改名为“boot” 然后将里面的文件改名为“bootx64.efi” 现在它能启动我电脑了

10.5K30

基于qt的简单小游戏_中国象棋单机版2,0

打开 Qt 下载器,注册 Qt 账户,登录,同意协议。若要使用国内镜像代理,点击左下角的配置图标。... Qt 4 ,信号和槽函数必须用 SIGNAL 和 SLOT 这两个宏包裹,且中间不能出现任何参数的变量名。...一旦出现连接不成功的情况,Qt 4 是没有编译错误的(因为一切都是字符串,编译期是不检查字符串是否匹配),而是在运行时给出错误。这无疑会增加程序的调试难度。...象棋程序,我创建了一个场景,加入了所有的棋子,并将它们放在数组中统一管理,尔后创建一个视图,用来反馈棋盘的信息(因为是象棋,视图处理相对简单)。...具体到代码,有以下几个类需要特别关注: QGraphicsScene Qt 图形场景类 QGraphicsItem Qt 的图形元素基类 QGraphicsPixmapItem 有 Pixmap 的图形元素类

1.1K20

Qt Designer基本控件介绍——Display Widgets(显示小部件)

,希望新窗口打开这个超链接时,setOpenExternalLinks特性必须设置为True,即setOpenExternalLinks(True) linkHovered:当鼠标指针滑过标签嵌入的超链接时...场景的部件,可用来显示图片 QGraphicsView框架主要包含三个主要的类QGraphicsScene(场景)、QGraphicsView(视图)、QGraphicsItem(图元) 常用方法:...setCacheMode(): 设置缓存模式,这个属性控制视图的哪一部分存储缓存,QGraphicsView可以预存一些内容QPixmap,然后被绘制到视口上,这样做的目的是加速整体区域重绘的速度...QLCDNumber会将非法字符替代为空格 常用方法: checkOverflow(double num) :检查给定值是否可以区域内显示(也会发射overflow信号,可以将其连接到槽函数处理)...和Qt的应用显示图形(包括2D和3D图形),Designer,该部件没有任何独有属性,都是继承的QWidget的属性。

7.7K20

OpenCV3 和 Qt5 计算机视觉:1~5

empty:如果Mat类没有元素,则返回true,否则返回false。 isContinuous:可用于检查Mat的元素是否以连续方式存储。 例如,只有一个单行的Mat类始终是连续的。...本章,我们将介绍以下各章: 如何使用QGraphicsScene在场景上绘制图形 如何使用QGraphicsItem及其子类来管理图形项目 如何使用QGraphicsView查看QGraphicsScene...您需要将QGraphicsItem指针与Qt::ItemSelectionMode一起传递,您将获得与项目发生冲突QGraphicsItem实例的QList。...此函数返回一个QGraphicsItem指针,使用它我们可以轻松地向场景添加“拖动和移动”或类似功能。 removeItem函数可用于从场景删除项目。...前面的代码大部分是不言自明的-它首先检查鼠标滚轮事件的方向,然后根据滚轮移动 X 和 Y 轴上都应用一个比例。 然后,它更新视口,以确保根据需要重新绘制所有内容。

5.7K20

QT入门10个小demo——MP4视频播放器

可以向播放列表添加多个媒体文件,控制播放顺序、循环播放等。 QVideoWidget:用于显示视频的小部件。...QGraphicsVideoItem:这个类是用于Qt图形场景显示视频的项。它可以与QGraphicsView和QGraphicsScene一起使用,以实现更灵活的视频显示和交互。...QGraphicsScene:这个类是Qt图形场景的基类,用于管理和显示2D图形项。您可以使用QGraphicsScene来显示视频或其他图形项。...如果添加显示无法找到库,pro文件中加上: 三、 ui设计 ui界面如下图所示: 四、函数编写 4.1 打开文件 void MainWindow::on_openButton_clicked...strFilter); if(strAllFiles.isEmpty()) { QMessageBox::information(this,"错误","打开视频文件失败,请重新检查

90230

Qt+OpenCV显示图片的两种方法(代码演示)

导 读 本文主要介绍Qt+OpenCV显示图像的两种方法,通过代码演示效果。 背景介绍 OpenCV本身提供了一些GUI方法,但使用起来仍有局限性。...以C++为例,实际应用我们大多会使用Qt或MFC来编写GUI程序。相较之下,Qt比MFC更易上手且界面样式更丰富,所以越来越多的C++视觉开发者和公司都倾向用Qt做视觉项目的GUI。...Qt显示OpenCV图像常用的方法有两种,一种是使用QLabel显示,另一种是QGraphicsView显示。...实现步骤 先准备需要显示的图片,配置好OpenCV环境(此处略过),新建Qt Widgets应用程序。...scene->addPixmap(QPixmap::fromImage(qImg)); } 【4】输出结果(左边QLabel,右边Graphics View): Graphics View默认图片显示不全的情况下会自动生成滑动条

91910
领券