Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QGraphicscene::addItem:项已添加到此场景_C++_Qt_Qgraphicsscene - Fatal编程技术网

C++ QGraphicscene::addItem:项已添加到此场景

C++ QGraphicscene::addItem:项已添加到此场景,c++,qt,qgraphicsscene,C++,Qt,Qgraphicsscene,我试图向QGraphicscene添加几个项目,但在调用scene->addItem(newbonus(Bonus::BonusType::coin,randPoint,pixels,parent))之后在应用程序输出中显示以下消息:qgraphicscene::addItem:项目已添加到此场景我做错了什么? 代码: for(int i = 0; i < coinsCount; ) { QPoint randPoint(random() % g->getWidth(),

我试图向QGraphicscene添加几个项目,但在调用
scene->addItem(newbonus(Bonus::BonusType::coin,randPoint,pixels,parent))之后在应用程序输出中显示以下消息:
qgraphicscene::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++;
    }
}
for(int i=0;igetWidth(),
随机()%g->getHeight());
if(g->getType(randPoint)!=Graph::wall&&!usedPoints.contains(randPoint)){
场景->添加项(新奖金(奖金::BonuType::硬币、蓝点、像素、父项));
使用点。推回(随机点);
i++;
}
}

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

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

请注意,这会将此图形项隐式添加到场景中 父母亲您不应该自己将项目添加到场景中