0

我有一个dialog.cpp文件,在这里我创建了QGraphicsScene使用QGraphicsView.

我创建了两个继承QGraphicsPixmapItem和的"Vehicle""Junction"。这两个对象都添加到QGraphicsScene我的dialog.cpp文件中。

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

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

关于项目的背景信息:每个人都"Vehicle"沿着一条路移动并接近一个"Junction"。车辆必须向路口询问“我的车道是否有绿灯要开?”,路口会回复"true/false"

4

1 回答 1

0

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

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

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

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

于 2013-03-16T13:31:19.853 回答