访问QGraphicsScene中的其他项目内容

时间:2013-03-15 19:08:22

标签: c++ qt qgraphicsview qgraphicsitem qgraphicsscene

我有一个 dialog.cpp 文件,我在这里创建了使用QGraphicsScene的{​​{1}}。

我创建了两个继承QGraphicsViewQGraphicsPixmapItem"Vehicle"的类。这两个对象都添加到我的 dialog.cpp 文件中的同一"Junction"

我想从我的QGraphicsScene对象中调用一个"Junction"成员的方法。该方法返回一个我需要的布尔值。

这更像是一个面向c ++的问题,因为我确信有一个简单的解决方案可以使用访问父母。

项目背景信息:每个"Vehicle"沿着道路移动并接近"Vehicle"。然后车辆必须询问交叉路口“我的车道是否有绿灯?”,交叉路口将回复"Junction"

1 个答案:

答案 0 :(得分:0)

通过QT文档审查可能的解决方案后,我已部分解决了这个问题。

调用this->scene()可以访问添加了对象的场景的成员函数。由于我知道我的对象的坐标,我调用this->scene()->itemAt(240,0);来检索指向该项目的指针。

返回的指针是提供的坐标上场景中最上面的项目。如果这提供了问题,请交替使用scene()->items()来检索场景中所有项目的列表。

但是,这只能访问,而不能访问存储项目的向量。我一直在研究使用->parent()函数,并认为这可能是解决方案,并将其动态地转换为所需的指针。如果我找到完整的解决方案,将更新答案。