• Qt 游戏场景 & 图元


    一:Graphics View框架主要特点

    1、 Graphics View框架结构中可以利用QT绘图系统的反锯齿、OpenGL(硬件加速)工具改善绘图性能。

    2、 Graphics View框架支持事件传播体系结构,使场景内的图元交互能力提高一倍。图元处理鼠标键盘事件,如鼠标按下、移动、释放、点击和双击事件,也跟踪鼠标移动。QWItget

    3、在Graphics View框架中通过二元空间划分树,提供快速的图元查找,这样能实时的显示大场景。

    二:Graphics View框架

    Graphics View框架结构主要包含了场景类(QGraphicsScene(容器))、视图类 (QGraphicsView)和图元类(QGraphicsItem)。

    三:QGraphicsScene

    QGraphicsScene类为管理大量的2D图形item提供了一个管理界面,做为item的容器,它配合使用QGraphicsView使用来观察items,例如线,矩形,文本或者自定义的items 。

    注意:QGraphicsScene场景没有自己可见的外观,他只管理items,需要创建一个QGraphicsView Widget来让场景可见。

    四:QGraphicsView

    QGraphicsView提供一个显示QGraphicsScene内容的窗口,在构造时候把场景对象作为参数,或者之后使用setScene()来设置view的场景,该框架还包含一个事件传递机制,允许画布和画布上的图元之间精确地双向交互。图元处理鼠标键盘事件,如鼠标按下、移动、释放、点击和双击事件,也跟踪鼠标移动。

    五:实例

    实例1:

    1. QGraphicsScene scene;
    2. scene.addText("Hello, world!");
    3. QGraphicsView view(&scene);
    4. view.show();

    实例2:

    1. QGraphicsView view;
    2. QGraphicsScene scene;
    3. Scene. setSceneRect();
    4. View. setScene(scene);

    虚函数void resizeEvent(QResizeEvent *event); 

    六:QGraphicsScene坐标系统

    七:QGraphicsView坐标

    QGraphicsView 类继承自QWidget类,因此它和其他的QWidget类一样以窗口的左上角作为自己坐标系的原点。 

    八:QGraphicsItem

    QGraphicsItem类是视图框架的一部分,是在一个QGraphicsScene中最基本的图形类,它为绘制你自己的item提供了一个轻量级的窗口,包括声明item的位置,碰撞检测,绘制重载和item之间的相互作用通过事件处理  

    九:QGraphicsItem的系统派生

    Qt提供了一系列标准的items对一些常见的图像,非常的方便,有下面这些:

    QGraphicsEllipseItem  提供一个椭圆item
    QGraphicsLineItem     提供一条线的item
    QGraphicsPathItem     提供一个任意的路径item
    QGraphicsPixmapItem   提供一个图形item
    QGraphicsPolygonItem  提供一个多边形item
    QGraphicsRectItem     提供一个矩形item
    QGraphicsSimpleTextItem 提供一个简单的文本item
    QGraphicsTextItem     提供一个文本浏览item

    十:自己派生QGraphicsItem

    写自己的item图形,首先应该继承QGraphicsItem,然后重写他的两个纯虚公共函数,boundingRect()和paint(),第一个函数返回绘制item大概的区域,第二个函数用来绘制item内容

    十一:坐标系

    QGraphicsItem则有自己的坐标系,在调用QGraphicsItem类的paint()函数重画项目时是以此坐标系为基准。 

  • 相关阅读:
    动态数组的插入、删除、统计、打印
    三一充填泵:煤矿矸石无害化充填,煤炭绿色高效开采的破局利器
    RabbitMQ初步到精通-第三章-RabbitMQ面板及环境搭建
    数据结构 - 逻辑结构和物理结构
    Flutter 精品项目大全之 侧边栏银行管理完成App(教程含源码)
    省钱兄短剧短视频小程序是如何运营的?
    ModelSim® SE Command Reference Manual : find命令的用法
    虚幻引擎:如何才能对音波(声音资产)进行逻辑设置和操作
    STM32-LCD液晶显示
    Hive sql 行列转换(行转列,列转行)
  • 原文地址:https://blog.csdn.net/m0_56051805/article/details/127197671