gpt4 book ai didi

c++ - QGraphicsScene::addItem: 项目已经被添加到这个场景

转载 作者:搜寻专家 更新时间:2023-10-31 00:59:23 25 4
gpt4 key购买 nike

我尝试向 QGraphicsScene 添加几个项目,但是在调用 scene->addItem(new Bonus(Bonus::BonusType::coin, randPoint, pixels, parent)); 之后应用程序输出出现此消息:QGraphicsScene::addItem:项目已添加到此场景
我做错了什么?
代码:

for(int i = 0; i < coinsCount; ) {
QPoint randPoint(random() % g->getWidth(),
random() % g->getHeight());

if(g->getType(randPoint) != Graph::wall && !usedPoints.contains(randPoint)) {
scene->addItem(new Bonus(Bonus::BonusType::coin, randPoint, pixels, parent));
usedPoints.push_back(randPoint);
i++;
}
}

最佳答案

您正在传递一个父项。如果父项已添加到场景中,将其设置为新项的父项会将后者也添加到场景中。

构造函数在 addItem() 之前运行,因此在执行后者时,该项目已经在场景中。

Note that this implicitly adds this graphics item to the scene of the parent. You should not add the item to the scene yourself.

关于c++ - QGraphicsScene::addItem: 项目已经被添加到这个场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33452642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com