PySide(PyQT),QGraphicsRectItem的setPos()和setRect()的坐标位置的区别

首先要搞清楚以下的层次和位置关系  :

 self.setPos(x, y)

  • 作用:设置图形项(QGraphicsRectItem)在父项坐标系(本例即为场景)中的位置。
  • 参数说明
    • x:图形项左上角的 x 坐标(场景坐标系,相对于父项坐标系的原点)。
    • y:图形项左上角的 y 坐标(场景坐标系,相对于父项坐标系的原点)。
  • 效果:移动图形项在场景中的位置,但不会改变矩形的形状(显示的矩形框)的相对位置和大小。
  • 示例
    rect_item.setPos(50, 60)
    
    这行代码将 rect_item 的左上角移动到场景坐标系中的 (50, 60) 位置。

self.setRect(x, y, w, h)

  • 作用:设置显示的矩形框的几何形状,包括位置(相对于图形项的原点)和大小。
  • 参数说明
    • x:矩形左上角的 x 坐标(相对于图形项的原点)。
    • y:矩形左上角的 y 坐标(相对于图形项的原点)。
    • w:矩形的宽度。
    • h:矩形的高度。
  • 效果:改变矩形的形状和相对于图形项原点的位置。
  • 示例
    rect_item.setRect(0, 0, 120, 60)
    
    这行代码将 rect_item 的矩形的形状左上角设置为相对于图形项原点的 (0, 0) 位置,并设置矩形的宽度为 120,高度为 60。

初始化参数的含义

rect_item = QGraphicsRectItem(x, y, w, h)

        上述代码的含义是创建一个QGraphicsRectItem实例,并且等同于执行了setRect(0, 0, 120, 60),由于没有设置它的pos(),所以它在场景中的位置是(0, 0)。

rect()的含义

        即setRect()设定的参数,参照系仍然是相对于图形项原点的位置。

当鼠标拖动后的变化

当设置了:

self.setFlag(QGraphicsItem.ItemIsMovable, True)  # 设置可移动

 之后,用鼠标就可以将图形项QGraphicsRectItem在场景中拖动,拖动之后改变的是图形项的pos()参数,即图形项在父项坐标系的位置,本例中即为场景的坐标系。

pos()和scenePos()区别

进一步的,了解pos()和scenePos()区别:PySide(PyQT),QGraphicsItem的pos()和scenePos()区别-CSDN博客

更有助于理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深蓝海拓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值