首页
学习
活动
专区
圈层
工具
发布

9.5 QGraphicsView视图框架

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

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

    小白白也能学会的 PyQt 教程 —— 图像类及图像相关基础类介绍

    而使用QGraphicsView和QGraphicsScene组件可以实现更复杂的图形场景展示和交互,适用于绘图、图表和地图等应用领域。...转换为 numpy 后,可以更方便的进行深度学习。二、图像显示组件想要将图像显示出来,仅有上面这些图像类可不行,还需要一些组件将图像给显示出来。...设置图像居中显示view.setAlignment(Qt.AlignCenter)# 显示QGraphicsView组件view.show()app.exec_()在上述代码中,我们创建了一个QGraphicsView...使用QPixmap加载图像文件,然后将图像添加到场景中。接着,将场景设置为QGraphicsView的场景,并使用setAlignment()方法使图像居中显示。...最后,显示QGraphicsView组件并进入应用程序的事件循环。

    4.5K40

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

    图形视图框架使用一个BSP(Binary Space Partitioning)树来快速发现图形项,正因为如此,可实时显示巨大的场景,甚至包括上百万个图形项。...() //为图形项设置焦点 QGraphicsScene::focusItem() //获取当前获得焦点的图形项 QGraphicsScene::render() //将场景中的一部分渲染到绘图设备上...QGraphicsScene::setSelectionArea() //传递一个任意形状来选择场景中指定的图形项 视图 QGraphicsView提供了视图部件,它用来使场景中的内容可视化。...::resize() //重置视图大小 QGraphicsView::show() //显示视图 QGraphicsView::setDragMode() //拖动场景,常以QGraphicsView...当创建一个自定义的图形项时,只需要考虑图形项的坐标系统,QGraphicsScene和QGraphicsView会完成其它所有的转换。 图像项的位置是指图像项的原点在其父图像项或场景中的位置。

    3.7K30

    【Qt 绘图控件为什么选择graphicsview,其它绘图控件可以缩放移动吗?】

    在 Qt 中,QGraphicsView 是一个强大的部件,它提供了一个可滚动的视图,用于显示 QGraphicsScene 中的内容。...QGraphicsView 支持用户与场景中的图形项进行交互,包括平移、缩放和旋转。这些交互功能是通过鼠标和键盘事件来实现的。...centerOn() 方法用于将视图的中心点移动到场景中的指定位置,而 mapToScene() 方法用于将视图坐标转换为场景坐标。...除了 QGraphicsView,Qt 还提供了其他绘图控件,如 QWidget、QFrame 等,它们也可以进行缩放和移动,但这通常需要你自己处理更多的细节,比如手动重绘控件内容和处理用户输入事件。...QGraphicsView 由于其内置的交互功能和优化,通常是实现复杂交互式绘图应用的首选。

    18210

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

    ") # 设置编辑框初始化时显示的文本 # self.text_browser.setReadOnly(False) # 调用setReadOnly方法并传入False参数即可编辑文本浏览框...场景的部件,可用来显示图片 QGraphicsView框架主要包含三个主要的类QGraphicsScene(场景)、QGraphicsView(视图)、QGraphicsItem(图元) 常用方法:...setCacheMode(): 设置缓存模式,这个属性控制视图的哪一部分存储在缓存中,QGraphicsView可以预存一些内容在QPixmap中,然后被绘制到视口上,这样做的目的是加速整体区域重绘的速度...digitCount() :返回当前的位数 value() :与当前显示的值有关,若当前显示的是数字,则该属性的值为0。...,可以在PyQt和Qt的应用中显示图形(包括2D和3D图形),在Designer中,该部件没有任何独有属性,都是继承的QWidget的属性。

    9.9K20

    C++ Qt开发:Charts绘图组件概述

    其中,QChartView的父类是QGraphicsView,它负责管理数据集的显示。而QChart则是图表的主要类,用于定义图表的结构和样式。...() 创建默认的图形视图(QGraphicsView),用于显示图表 addAxis(QAbstractAxis *axis, Qt::Alignment alignment) 将指定的坐标轴添加到图表中...setScene(QGraphicsScene *scene) 将指定的QGraphicsScene设置为视图的场景。 scene() const 获取当前视图关联的场景。...以下是对功能的概述: 创建图表和序列: 创建一个 QChart 对象,并设置图表标题。 将图表添加到 QChartView 中,以便在UI中显示。...初始化数据: 使用 QRandomGenerator 生成介于0和100之间的随机整数,模拟系统负载的变化。 将生成的随机整数添加到两个曲线序列中,分别对应一分钟和五分钟的负载。

    4.9K10

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

    可以使用它来控制媒体的播放、暂停、停止等操作。 QMediaPlaylist:用于管理媒体播放列表。可以向播放列表中添加多个媒体文件,并控制播放顺序、循环播放等。...QVideoWidget:用于显示视频的小部件。可以将QVideoWidget添加到您的应用程序窗口中,以显示正在播放的视频。...QGraphicsVideoItem:这个类是用于在Qt图形场景中显示视频的项。它可以与QGraphicsView和QGraphicsScene一起使用,以实现更灵活的视频显示和交互。...QFileDialog:这个类用于显示文件选择对话框,以便用户选择要播放的媒体文件。 QGraphicsScene:这个类是Qt图形场景的基类,用于管理和显示2D图形项。...您可以使用QGraphicsScene来显示视频或其他图形项。

    3.6K31

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

    导 读 本文主要介绍Qt+OpenCV显示图像的两种方法,并通过代码演示效果。 背景介绍 OpenCV本身提供了一些GUI方法,但使用起来仍有局限性。...以C++为例,实际应用中我们大多会使用Qt或MFC来编写GUI程序。相较之下,Qt比MFC更易上手且界面样式更丰富,所以越来越多的C++视觉开发者和公司都倾向用Qt做视觉项目的GUI。...Qt中显示OpenCV图像常用的方法有两种,一种是使用QLabel显示,另一种是QGraphicsView显示。...实现步骤 先准备需要显示的图片,并配置好OpenCV环境(此处略过),新建Qt Widgets应用程序。...*scene = new QGraphicsScene;//图像显示 ui->graphicsView->setScene(scene); ui->graphicsView->show

    3.8K10

    PyQt 多标签批量图片查看器开发纪实

    原因很简单:成熟稳定,文档资料多自带丰富的控件(QTabWidget、QGraphicsView 都很好用)可以自定义界面样式,做出不那么“老气”的界面最重要的,我用得比较顺手有了技术选型,接下来就可以进入正式的设计阶段了...于是,我改用更灵活的 QGraphicsView + QGraphicsScene。...在 image_viewer.py 里,我这样搭建:from PyQt5.QtWidgets import QGraphicsView, QGraphicsScene, QGraphicsPixmapItemfrom...全局快捷键我在 MainWindow 初始化时,绑定了几个常用动作的快捷键:from PyQt5.QtWidgets import QShortcutfrom PyQt5.QtGui import QKeySequenceclass...过程中遇到的挑战主要有:QGraphicsView 的使用细节:要把图片居中、缩放体验要好,需要熟悉 fitInView、transformationAnchor 等 API。

    82610

    Qt官方示例-拖放机器人

    Graphics View提供了QGraphicsScene类,用于管理从QGraphicsItem类派生的大量定制2D图形项目,并与之交互;还提供了QGraphicsView小部件,用于可视化项目,并支持缩放和旋转...此代码段显示了两个在头部的缩放和旋转上运行的动画。这两个QPropertyAnimation实例仅设置对象,属性以及各自的开始和结束值。   所有动画均由一个顶级并行动画组控制。...按下该项目将显示一个闭合的手形光标。释放将再次恢复为打开的手形光标。...每个项目都添加到场景中。   在此圆的中心,我们创建一个Robot实例。缩放机器人并将其向上移动几个单元。然后将其添加到场景中。...该视图具有固定的沙色背景和窗口标题。   最后,我们显示视图。控件进入事件循环后,动画立即开始。

    5.8K41

    Qt中国象棋一—— Qt 2D 绘图入门

    最近想用Qt写一个中国象棋的项目,在网上找了几个例子后,发现关于绘图部分基础为0 ,于是根据项目需要学习一下。...重新实现QWidget::paintEvent() 可用于订制窗口部件,并且可以设计出自己想要的风格。 一个常见的需求是在二维画板上显示大量的、轻量级的并且可与用户交互的项。...Qt中围绕着QGraphicsView、QGraphicsScene、QGraphicsItem类引入了一种全新的“图形视图”体系【了解概念即可,不作详细介绍】。——摘自C++ GUI Qt4编程。...1)当窗口部件第一次显示时,系统会自动产生一个绘图事件 2)重新调整窗口部件大小 3)当窗口部件被其他部件遮挡,然后又再次显示出来时,就会对隐藏的区域产生一个重绘事件 void Widget::paintEvent...230)); // 绘制直线 painter.drawLine(QPointF(0 ,0), QPointF(width() / 2, height() / 2)); } 在重新实现的事件函数中

    2.5K10

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

    ,又或者需要对项进行动画处理,使用PyQt的图形视图类(QGraphicsView)比重新实现一个窗口部件的绘制事件更方便一些。 要使用图形视图类就必须创建一个场景(QGraphicsScene)。...场景纯粹是数据,必须与至少一个QGraphicsView对象相关联才能实现可视化。在场景中绘制的项都是QGraphicsItem的子类(图形项)。...场景可以有一个前景层,例如可以为场景中每个项绘制网格;场景也可以有一个背景层,可提供一个背景图像或背景色。 项既可以是场景的一些子项,也可以是其它项的子项。...在对项进行定位时,是使用逻辑坐标系的方式来放置它们。第三种坐标系是项所使用的坐标系,它的零点位于项的中心,也就是该项在场景中的位置。...self.setPos(position) self.setTransform(matrix) scene.clearSelection() #清除场景中的选择

    2.4K40

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

    ) 三: CustomView类是我们的绘图面板,这个类继承自QGraphicsView 在这个类的构造函数中,我们创建了他的QGraphicsScene 并设置了它的大小(这也是为什么我们的绘图板有滚动条的原因...) 另外需要注意的是QGraphicsScene的坐标原点在中心位置,如下图所示 四: CustomArrow是描述箭头连线的类: 这个类继承自QGraphicsItem boundingRect...是QGraphicsItem的虚函数,必须要实现, 其中1.5是箭头连线的线宽,8是箭头张开后所占的区域宽度 p1是箭头的起始点,p2是箭头结束点(也就是带箭头的那一端) 最终返回的一个Rect结构如下图所示...接下来是计算出箭头的两个点arrowP1和arrowP2 六: 绘制箭头的工作是在CustomArrow的paint函数中完成的,代码如下所示 箭头只不过是一个多边形,用drawPolygon画出来的...七: CustomRect继承自QGraphicsRectItem 在这个类型中,我们重载了itemChange函数,代码如下 当当前方框节点移动后,与这个节点相关的箭头都要跟着移动 Arrows

    2.5K60

    PyQt4应用程序的PDF查看器

    最近因为项目需要创建一个基于PyQt4的PDF查看器应用程序,正常来说,我们可以使用PyQt4的QtWebKit模块来显示PDF文件。那么具体怎么实现呢 ?...以下就是我写的一个简单的示例代码,演示如何创建一个PyQt4应用程序的PDF查看器:1、问题背景我想编写一个Python+Qt4应用程序,该应用程序需要时不时地弹出一个窗口,以显示PDF文档并允许一些非常基本的操作...以下是一个使用Poppler库在PyQt4应用程序中创建PDF查看器的示例代码:import PyQt4from PyQt4 import QtCore, QtGui​from poppler import...当用户单击打开文件操作时,将打开一个文件对话框,以便用户可以选择要打开的PDF文件。当用户选择一个文件后,该文件将被加载到PDF查看器中。...运行这段代码将显示一个简单的PyQt4 PDF查看器应用程序,可以在窗口中查看指定的PDF文件。PyQt4已经比较老旧,建议升级到PyQt5或PyQt6以获得更好的性能和功能支持。

    1.4K10

    用Python画出心目中的自己

    实验前的准备 首先我们使用的python版本是3.6.5所用到的模块如下: Pyqt5模块:PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成。...QGraphicsScene....(2)GUI界面:其核心思路并非直接用输入草图作为网络生成条件,而是将人脸进行分块操作后利用数据驱动的思想对抽象的草图特征空间进行隐式建模,并在这个流形空间中找到输入草图特征的近邻组合来重构特征,进而合成人脸图像...从本质上看,这是将输入草图作为软约束来替代传统方法中的硬约束,因此能够用粗糙甚至不完整的草图来生成高质量的完整人脸图像。 ?...2)安全问题 比如人脸支付场景中,可能存在利用该项技术盗刷的问题。随着人脸活体检测技术的发展,这种隐患应该能得以有效避免。

    92810
    领券