Qt Graphics View Framework 简介

QT之QGraphicsView详细介绍 是 Qt GUI 库中的一个核心类,它是 Qt 图形视图框架的一部分,主要用于可视化地显示中的内容。QGraphicsView 提供了一个灵活且可定制的二维图形界面,支持丰富的交互功能,如平移、缩放、旋转,并能够管理和布局复杂的图形场景。基本特性:视图与场景分离类本身负责渲染和显示图形场景 (),而场景则负责存储和管理所有的图形项 (),这些图形项可以是文本、形状、图片等任何可视化元素。视口与坐标系统QGraphicsView 内部有一个视口,视口映射的是场景的部分或全部内容。 阅读详情

在 Qt 中,QGraphicsScene、QGraphicsView、QGraphicsWidget 和 QGraphicsItem 是构建图形用户界面的核心类,它们共同构成了 Qt 的图形视图框架(Graphics View Framework)。这个框架提供了一个基于图元的模型/视图架构,用于管理和显示大量的自定义 2D 图形项。

QGraphicsScene

QGraphicsScene 是一个用于管理多个 QGraphicsItem 的容器。它为这些图形项提供了一个平面空间,可以在其中进行组织、管理和检索。

  • 功能:
    • 提供一个用于放置图形项的场景。
    • 管理图形项的索引和事件传播。
    • 支持图形项的分组和层次管理。
  • 特点:
    • 不是可见的,需要通过 QGraphicsView 来查看。
    • 可以包含大量的图形项。
  • 使用场景:
    • 任何需要管理和显示大量 2D 图形项的应用程序。
  • 代码示例:
QGraphicsScene scene = new QGraphicsScene();
QGraphicsRectItem rect = scene->addRect(QRectF(0, 0, 100, 100));

QGraphicsView

QGraphicsView 是一个用于展示 QGraphicsScene 内容的视图部件。它提供了一个窗口,用户可以通过这个窗口来查看和与场景中的图形项交互。

  • 功能:
    • 显示 QGraphicsScene 的内容。
    • 支持缩放和平移操作。
    • 可以将事件传递给场景和图形项。
  • 特点:
    • 是一个可视的部件,可以直接添加到窗口中。
    • 支持 OpenGL 渲染。
  • 使用场景:
    • 任何需要可视化 2D 图形项的应用程序。
  • 代码示例:
QGraphicsView view = new QGraphicsView(scene);
view->show();

QGraphicsWidget

QGraphicsWidget 是 QGraphicsItem 的子类,它提供了类似于 QWidget 的功能,包括布局管理和事件处理。

  • 功能:
    • 作为图形项,可以在 QGraphicsScene 中使用。
    • 支持布局和子部件。
    • 可以处理事件和绘制自定义内容。
  • 特点:
    • 结合了 QGraphicsItem 的灵活性和 QWidget 的便利性。
  • 使用场景:
    • 需要更复杂的用户界面元素和布局管理的图形视图应用程序。
  • 代码示例:
QGraphicsWidget widget = new QGraphicsWidget();
QGraphicsLinearLayout layout = new QGraphicsLinearLayout(widget);
widget->setLayout(layout);

QGraphicsItem

QGraphicsItem 是所有图形项的基类,它提供了基本的图形项功能,如位置、大小、形状和变换。

  • 功能:
    • 定义图形项的基本属性和行为。
    • 支持父子关系和碰撞检测。
    • 可以处理事件和自定义绘制。
  • 特点:
    • 高度可定制,可以通过子类化来实现复杂的图形项。
  • 使用场景:
    • 任何需要自定义 2D 图形表示的应用程序。
  • 代码示例:
QGraphicsItem item = new QGraphicsItem();
item->setPos(100, 100);
item->setFlag(QGraphicsItem::ItemIsMovable);

关系总结:

  • QGraphicsScene 作为容器,管理所有的 QGraphicsItem。
  • QGraphicsView 作为视图,展示 QGraphicsScene 的内容。
  • QGraphicsWidget 是 QGraphicsItem 的子类,提供更复杂的用户界面功能。
  • QGraphicsItem 是所有图形项的基础,可以是简单的图形也可以是复杂的 QGraphicsWidget。

通过这些类的组合使用,开发者可以创建复杂的 2D 图形界面,实现各种交互和视觉效果。

QT学习:图形视图Graphics View 一、Graphics View框架结构的主要特点 (1)在Graphics View框架结构中,系统可以利用Qt绘图系统的反锯齿、OpenGL工具来改善绘图性能。 (2) Graphics View支持事件传播体系结构,可以使图元在场景(scene) 中的交互能力提高1倍,图元能够处理键盘事件和鼠标事件。其中,鼠标事件包括鼠标被按下、移动、释放和双击,还可以跟踪鼠标的移动。 (3)在Graphics View框架中,通过二元空间划分树(Binary Space Pritining, BSP) 提供快速的图元 阅读详情

相关推荐

分享Qt 之 Graphics View Framework 简介内容

Graphics View Framework 交互式 2D 图形的 Graphics View 框架概述。自 Qt4.2 中引入了 Graphics View,以取代其前身 QCanvas。Graphics View 提供了一个用于管理和交互大量的可定制的 2D 图形项与用于可视化这些项的 View 小部件的 surface(曲面),并提供缩放(zooming)和旋转(rotation)功能支持。 该框架包括事件传播体系结构(an event propagation architecture),该体系结构

haozige888的博客 705

QT Graphics View

1.概述 采用QPainter绘图时需要在绘图设备paintEvent()事件里编写绘图的程序,实现整个绘图过程,这种方法如同使用windows的画图软件在绘图,绘制的是位图,这种方法适合于绘制复杂性不高的固定图形,不能实现图件的选择、编辑、拖放、修改等功能。 Graphics View是一种基于图形项的模型/视图模式,并且每个图形元件是可选择、可拖放和修改的,由3个部分组成,场景、视图、图形项 视图、场景、图形项的关系 2.场景 QGraphicsScene类提供绘图场景,场景是不可见的,是一

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 6424

Qt Graphics View Framework 图形视图框架

QT的2D绘图我们使用QPainter实现少量绘图是很理想的,但是如果是要绘制大量的2D图形并且需要能够控制管理时就会显得力不从心。 好在QT视图体系提供了QGraphics View Framework的框架。使用这个框架可以将各图形项进行单独或分组的控制管理。   它包含三个大类:QGraphicsItem 项类(或者叫做图元类),QGraphicsScene 场景类,和 QGraphi

—— 然 之 1万+

Qt之QGraphicsView入门篇

作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 https://www.jianshu.com/p/e010be59f762 https://www.xuebuyuan.com/991404.html https://baijiahao.baidu.com/s?id=1631213688985324831&wfr=spider&for...

billy的博客 8万+

Qt的Graphics View Framework

负责管理图形项,而负责在界面中显示和控制场景。使用时,你可以根据具体的需求,自定义场景和视图类,以及管理和显示的图形项。

Joooooohn的博客 530

Graphics View Framework 学习笔记——布局

Graphics View Framework 学习笔记——布局由于工作需要前段时间自己研究学习了一下Qt中的一大重点内容模块:Graphics View Framework,工作之余整理跟大家分享一下,希望分享的内容可以帮助大家在工作中少走弯路,之中的内容如果有什么不足之处,也希望大家提出宝贵建议。使用Qt做界面开发时,我相信大家都是从GUI方式的窗口开始进入Qt这所大世界的,所以大家在使用Qt的

敲定生活 1504

【Qt】QGraphicsView框架(Qt Graphics View Framework)简介-用于构建复杂 2D 交互式图形界面

Qt Graphics View Framework 是一个功能强大且灵活的 2D 图形框架,适用于需要复杂交互和高性能渲染的场景。通过合理使用其核心组件(Scene、View、Item)、坐标系统和优化策略,开发者能够快速构建高效的图形应用程序。

weixin_43510208的博客 1524

Qt之Graphics View框架介绍

本文详细介绍了QT中的GraphicsView框架,使用方法,鼠标键盘事件和坐标变换以及注意事项等内容

Mei20140912的专栏 896

Graphics View Framework -30

现在基本上也已经到了2D绘图部分的尾声,所谓重头戏都是在最后压轴的,现在我们就要来看看在绘图部分功能最强大的Graphics View。我们经常说KDE桌面,新版本的KDE桌面就是建立在Graphics View的基础之上,可见其强大之处。 Qt的白皮书里面这样写道:“Qt Graphics View 提供了用于管理和交互大量定制的 2D 图形对象的平面以及可视化显示对象的视图 widget,并支持缩放和旋转功能。Graphics View 使用 BSP(二进制空间划分)树形可非常快速地找到

啃骨头的小蚂蚁 2590

Qt Graphics View Framework中左手系转右手系

问题来源 我们从小学习的数学中是右手坐标系,很多系统中(如:ros)也是右手系,而Qt Graphics View Framework 中却是左手坐标系,当两个不同坐标系的系统结合时,导致了界面上显示的内容和其他系统中的内容是上下翻转的,虽然看起来别扭,但是各种操作却不会有任何问题。 解决办法 方案一 在QGrahpicsView中将整个显示上下翻转,也就是坐标系还是原来的坐标系,...

血溅五步的专栏 529

Qt学习笔记-----Graphics_View_Framework

Graphics View框架中三个重要的类:QGraphicsScene, QGraphicsView,  QGraphicsItem。 Scene提供了图形视图场景,它是整个框架的基础,负责以下四个事情: 1.为了管理大量元素item,它提供了一个快速的接口 2.传播事件给每一个元素item 3.管理元素item状态,例如选择和焦点处理 4.提供原生的渲染功能,主要用于绘图。 Sc

一个程序渣渣的小后院 706

Qt Graphics View Framework 使用教程

通过本教程,您应该已经了解了 Qt Graphics View Framework 的基本概念和使用方法。这是一个非常强大的工具,可以帮助您创建出色的 2D 图形界面。继续探索和实践,您将能够充分利用它的全部功能!

github_37290846的博客 1150

学习QT之图形视图框架

Graphics View(图形视图)框架结构取代了之前版本中的QCanvas模块,它提供基于图元的模型/视图编程,类似于QtInterView的模式/视图结构,只是这里的数据是图形。 一、图形视图体系结构 1、Graphics View框架结构的主要特点 Graphics View框架结构的主要特点如下: (1)、在Graphics View框架结构中,系统可以利用Qt绘图系统的反锯齿、OPen...

贝勒里恩的博客 1706

QT 中的 Graphics View 系统

这个框架是一个相对成熟的渲染引擎的上层框架,通常也可以会叫做 Scene - View。 在QT中,GraphicsView是一个与QWdiget系列一点点不一样的系统。这个系统主要由下面几个框架类构成:QGraphicsView, QGraphicsScene, QGraphicsItem QGrahpicsView是从原生的QWidget继承过来,QGraphics-View系统中,他承担的也是视口的指责,Viewport,Viewport相当于显示设备的一个矩形区域。 QGraphi..

u011555996的博客 2819

Qt基础之二十九:图形视图框架(Graphics View Framework)及其应用

无意中从网络获取一份俄罗斯方块源码,基于图形视图框架(Graphics View Framework)实现的。当然源码的核心从来都不是界面,而是方块的移动、变形和消除等算法。源码非常完整,注释详细,经改动后已能在Qt5中运行,下面是运行效果,背景音乐和音效也是有的。

草上爬的博客 6844

深入理解QT Graphics View框架:实例与概念

在这一章节中,我们将探索Qt图形视图框架的基础知识。首先介绍框架的设计理念和核心组件,随后逐步深入了解场景(Scene)、项目(Item)和视图(View)之间的关系以及它们如何协同工作来创建复杂的图形界面。我们也将讨论框架如何高效地管理大量图形对象以及渲染成千上万的图形元素而不影响性能。Qt Graphics View Framework是Qt库中负责图形表示和交互处理的一个模块。其设计目标是提供一个灵活、高效的方式来处理2D图形和交互式小部件。

weixin_42588555的博客 866

Qt5 Graphics View Framework

Graphics View 是一个基于元素(item)的 MV 架构的框架。它可以分成三个部分:元素 item、场景 scene 和视图 view。 基于元素的意思是,它的每一个组件都是一个独立的元素。这是与我们之前讲到过的QPainter状态机机制不同。回忆一下,使用QPainter绘图,大多是采用一种面向过程的描述方式:首先使用drawLine()画一条直线,然后使用drawPolygon(...

salmonwilliam的博客 1198

机器视觉app框架 qt5_vs2017_opencv3.zip

机器视觉app框架,带详细注释,注释每一条语句。

上一篇: QTransform 笔记
下一篇: QGraphicsWidget与QWidget的主要区别是什么?
低配天才
博客等级 码龄10年 277粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值