QT 视图场景 坐标理解

一、理论

QT 视图场景 坐标理解_第1张图片

QT 视图场景 坐标理解_第2张图片

二、理解

        1、对于QGraphicsItem 坐标,比如创建一个QGraphicsRectItem ,,红色框给定的矩形参数为(-50,-50,100,100),蓝色框为(0,0,100,100).

QT 视图场景 坐标理解_第3张图片

        2、 对于场景,,addItem 默认是把图元项的中心放到场景中心,,假使上图中心就是场景中心。。两个不同的矩形参数的图元显示上就和上图一致。

        而如果对图元进行坐标设置 setPos(100,100),坐标是场景坐标,则显示会如下

        QT 视图场景 坐标理解_第4张图片

        3、场景 可以设置 setSceneRect,则是表示视图可以观测的区域,如果视图大小比较小,则会出现滑块,,默认视图是观察到场景可观测区域的中心,,

如下,如果setSceneRect(-500,-500,1000,1000),则视图中心就是场景中心

但是如果setSceneRect(0,0,1000,1000),则视图中心看到的是 (500,500)那个点

QT 视图场景 坐标理解_第5张图片

         4、对于自定义的图元,需要重载如下函数

         QRectF boundingRect() const;
          void paint(QPainter *painter,const QStyleOptionGraphicsItem *option,QWidget *widget);
          QPainterPath shape() const;

         同样的,,这里面涉及到的矩形,,和 1 、 2 点是一个概念

        综上,,图元自己的外形、边框等 都按自己的坐标去画。。

        图元在场景中的位置,,比如设置为(100,100),是代表 图元自己中心位置(0,0)移动到 场景的 (100,100)位置。

        

        

        

        

你可能感兴趣的:(qt,开发语言)