类型为qgraphicsitem到qgraphicswidget

时间:2015-12-14 06:43:03

标签: qt qgraphicsitem qgraphicsscene qgraphicswidget

我的qgraphicsscene有qgraphicswidget,不断添加qgraphicsLayoutItem。在graphicsView中,我需要在场景中协调得到qgraphicswidget几何体。 我试过了  QList items = scene() - > items(); 并检查其类型

  

foreach(QGraphicsItem * item,items){           if(item-> type()== ItemType)           {           }

但如何将项目转换为qgraphicswidget并将其gemoetry更改为场景坐标。 normal item.boundingRect不断返回0,0,10x10

1 个答案:

答案 0 :(得分:1)

项目的边界矩形在项目坐标中。要将其映射到场景坐标,请使用QGraphicsItem::mapToScene()

const QRectF mapped = item->mapToScene(item->boundingRect());

要投射QGraphicsItem,您只需使用dynamic_cast或static_cast,或使用特殊qgraphicsitem_cast

auto widget = qgraphicsitem_cast<QGraphicsWidget*>(item);

要绘制坐标,不应该进行投射。