首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除一些子项为成员的QGraphicsItem?

如何删除一些子项为成员的QGraphicsItem?
EN

Stack Overflow用户
提问于 2013-01-21 20:04:04
回答 1查看 3.6K关注 0票数 3

我有一个继承QGraphicsItem的自定义项目。它有一些子图形项作为成员变量。我应该按什么顺序从场景中删除这些项目,以及如何删除它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-21 20:25:55

创建成员图形项目,如下所示:

代码语言:javascript
运行
复制
class MyClass : public QGraphicsItem
{
    ...
private:
    
    SomeKindOfGraphicsItem* _item1;
    SomeOtherGraphicsItem* _item2;
}

代码语言:javascript
运行
复制
MyClass::MyClass( ... ) :
    QGraphicsItem( ... ),
    _item1( new SomeKindOfGraphicsItem( ..., this ) ),
    _item2( new SomeOtherGraphicsItem( ..., this ) )
{
    ...
}

在这种情况下,只需从场景中移除父项(在此示例中为MyClass)就足够了。这将同时删除所有子项:

空QGraphicsScene::removeItem(QGraphicsItem * item)

从场景中移除项目项目及其所有子项目。项目的所有权将传递给调用者(即,QGraphicsScene在销毁项目时不再删除项目)。

此外,当MyClass的一个对象被删除时,它将通过Qt机制删除它的所有子对象:

虚拟QGraphicsItem::~QGraphicsItem()

销毁QGraphicsItem及其所有子对象。如果此项目当前与场景相关联,则将在删除该项目之前将其从场景中删除。

注意:在销毁项目之前从QGraphicsScene中删除该项目会更有效率。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14438202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档