2013-03-15 21 views
0

我有一個dialog.cpp文件,它在這裏我創建我的QGraphicsScene它使用QGraphicsView訪問QGraphicsScene內的其他項目的內容

我創建的繼承QGraphicsPixmapItem"Vehicle""Junction"兩班。這兩個對象都添加到我的dialog.cpp文件中的相同QGraphicsScene

我想從我的"Vehicle"對象中調用一個方法,該方法是"Junction"的成員。該方法返回一個我需要的布爾值。

這更多的是一個面向C++的問題,因爲我確定有一個簡單的解決方案,它使用訪問父項。項目

背景信息:每個"Vehicle"沿着道路移動,接近"Junction"。然後車輛必須問路口「我的車道是否有綠燈?」,路口會回覆"true/false"

回答

0

通過QT文檔審查可能的解決方案後,我已經部分解決了這個問題。

調用this->scene()允許訪問添加了對象的場景的成員函數。因爲我知道我調用的對象的座標,this->scene()->itemAt(240,0);來檢索指向該項目的指針。

返回的指針是所提供座標的場景中最上面的項目。如果這個問題交替使用scene()->items()來檢索場景中所有項目的列表。

然而,這僅僅可以訪問的和不進行該產品被存儲在矢量。我一直在研究使用->parent()函數,並認爲這可能是解決方案,並將其動態地轉換爲所需的指針。如果我找到完整的解決方案,將更新答案。