如何在场景中找到特定项目并将其删除。 我已经宣布了一个graphicsitem并将其添加到场景中。现在在某些情况下,我必须从场景中删除该项目,但在从场景中删除项目之前,我想知道该项目是否已添加到场景中。如果我尝试删除未添加到场景中的项目,我会收到以下错误:
"QGraphicsScene::removeItem: item 0x121c520's scene (0x0) is different from this scene (0x1143850)"
未选择该项目,因此我无法使用scene() - > selectedItem()列表。
答案 0 :(得分:2)
您可以检查从调用QGraphicsItem::scene()返回的指针。它将返回场景,如果场景中不存在,则返回NULL。
// assuming item is a class derived from QGraphicsItem
if(item->scene() != nullptr) // nullptr from C++ 11, else use NULL
{
// item is in a scene
}