2015-06-05 98 views
0

我真的在泡菜,我急需幫助。我試圖在QGraphicsScene子類中收集項目的某些屬性(QGraphicsitem子類的實例)。此代碼是在DiagramItem類恰恰在雙擊事件:管理場景中的物品QT

DiagramItem *cur; 
QVector<QString> hal; 
foreach(QGraphicsItem *item, this->scene()->items()) 
{ 
    cur = qgraphicsitem_cast<DiagramItem *>(item); 
    hal.push_back(cur->getName()); 
} 

現在它工作正常,當我在現場有一個項目,但一旦我添加其他應用程序只是崩潰! 請幫忙!

回答

1

您應檢查鑄件的結果:

cur = qgraphicsitem_cast<DiagramItem *>(item); 
if (cur) 
{ 
    hal.push_back(cur->getName()); 
} 

也許還有場景中的其他物品,不能強制轉換爲DiagramItem對象。

+0

你救了我的命,非常感謝你。 –

+0

不客氣。永遠不要忘記檢查任何演員的結果。 –