侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

QGraphicsView/QGraphicsScene/QGraphicsItem坐标系统

noerror
2022-12-03 / 0 评论 / 0 点赞 / 310 阅读 / 308 字 / 正在检测是否收录...

QGraphicsView坐标系统

使用流程

 QGraphicsScene scene;

 QGraphicsItem item;
 scene.addItem(&item);
 item.setPost(0, 0);

 QGraphicsView view(&scene);
 view.show();

view可以在创建时设置scene,也可以创建后使用setScene接口设置。

item与scene的坐标关系

item有两个坐标关键因素,pos和boundingRect。

  • item的pos决定了item在scene坐标系统中的位置。

  • item的setPos时将自己坐标系统的(0,0)点放在scene坐标系统的pos上。

  • item的boundingRect决定了item的大小,影响鼠标事件等。

  • item的boundingRect按的是item自己的坐标系统,如果返回(0, 0, width, height)则是把左上角放在对应的pos。

scene与view的坐标关系

scene有两个边框,itemsBoundingRect和sceneRect。

  • itemsBoundingRect由scene中所有item的pos和item的boundingRect计算得来。由pos固定坐标,itemsBoundingRect刚刚好包含主所有的item的boundingRect。

  • 如果没有调用setSceneRect指定,则sceneRect等于itemsBoundingRect。

  • sceneRect永远剧中显示在view的正中心。

  • sceneRect以外的部门也可以显示在view上。

  • 当sceneRect超过view的大小时,view显示滚动条,滚动条的中心仍然是sceneRect的中心。

0

评论区