如何重新定义QGraphicsItem的位置(0,0)?

时间:2016-05-27 11:06:36

标签: c++ qt coordinates qgraphicsitem

我有一个自定义QGraphicsItem,它只绘制其他QGraphicsItems的父级(如QGraphicsRectItem等等)。我的顶级项目在子项“内部”的某个位置(0,0)。这非常不方便。我想将原点移到childrenBoundingRect()的左上角。

在图片中我已经(0,0)我的顶级项目在我的子项目中的某个位置(实线箭头)。我想将原点移到虚线上。我怎么能这样做?

结果我希望顶级项目的定位会更方便。

enter image description here

1 个答案:

答案 0 :(得分:1)

覆盖QGraphicsItem的示例通常会显示源自(0,0)的boundingRect()函数。更改此项将更改原点。因此,例如,要将其更改为中心,其中宽度和高度是类内部存储的变量,您可以这样做: -

QRectF boundingRect() const
{
    return (-width / 2, -height / 2, width, height);
}