一个QWidget 内部有一个QGraphicsView,QGraphicsView内有一个QGraphicsScene,QGraphicsScene内有多个QGraphicsRectItem;QWi

在 Qt 框架中,QWidgetQGraphicsViewQGraphicsScene 和 QGraphicsRectItem 确实都与坐标系统有关,但它们各自的坐标系统有所不同,且它们之间存在着一定的关系。以下是对这四个对象坐标系统的解释和它们之间的关系:

  1. QWidget:
    • QWidget 使用的是窗口坐标系统。这是基于屏幕像素的坐标系统,原点 (0,0) 通常在窗口的左上角。
    • QWidget 的坐标系统是其子控件布局和定位的基础。
  2. QGraphicsView:
    • QGraphicsView 本身也是一个 QWidget,因此它也有自己的窗口坐标系统。
    • QGraphicsView 提供了一个视图来展示 QGraphicsScene 的内容。这个视图可以缩放和旋转,从而改变场景内容的显示方式。
  3. QGraphicsScene:
    • QGraphicsScene 使用的是场景坐标系统,这是一个逻辑坐标系统,与屏幕像素无关。
    • 场景的原点 (0,0) 是在场景的左上角,但与 QGraphicsView 的显示窗口大小和位置无关。
    • QGraphicsScene 的坐标系统用于定义和布局其中的图形项(如 QGraphicsRectItem)。
  4. QGraphicsRectItem (以及其他 QGraphicsItem 派生类):
    • 这些图形项使用 QGraphicsScene 的坐标系统来定义它们在场景中的位置和大小。
    • 图形项的坐标是相对于场景原点的,而不是相对于视图或窗口的。

关系:

  • 当你在 QGraphicsScene 中添加一个 QGraphicsRectItem 时,你会指定其在场景坐标系统中的位置和大小。
  • QGraphicsView 负责将 QGraphicsScene 的内容映射到其自己的窗口坐标系统中进行显示。这包括处理任何缩放、旋转或平移变换。
  • 如果 QGraphicsView 被嵌入到一个 QWidget 中,那么 QGraphicsView 的窗口坐标系统将是相对于其父 QWidget 的。

简而言之,每个对象都有其自己的坐标系统,这些坐标系统通过 QGraphicsView 的变换功能相互关联。QGraphicsScene 和其内部的图形项使用逻辑坐标,而 QGraphicsView 和 QWidget 则使用基于屏幕的像素坐标。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值