我正在尝试将多个qgraphicsitem
添加到qgraphicsitemgroup
:
case LineMode:
lineGroup = new QGraphicsItemGroup;
if (c1)
{
pointItem = new Point;
pointItem->setPos(mouseEvent->scenePos());
lineGroup->addToGroup(pointItem);
start_p = mouseEvent->scenePos();
c1 = false;
c2 = true;
qDebug() << "p1: " << lineGroup->childItems().count();
}
else if (!c1 && c2)
{
pointItem = new Point;
pointItem->setPos(mouseEvent->scenePos());
lineGroup->addToGroup(pointItem);
end_p = mouseEvent->scenePos();
c3 = true;
c2 = false;
qDebug() << "p2:" << lineGroup->childItems().count();
}
if (c3)
{
lineItem = new Line(start_p, end_p);
lineGroup->addToGroup(lineItem);
addItem(lineGroup);
groupList.append(lineGroup);
qDebug() << "p3:" << lineGroup->childItems().count();
}
break;
我在头文件中创建了groupList
:
QList<QGraphicsItemGroup*> groupList;
即使添加了3个项目,即添加到该组中的项目数仍为1,即
p1: 1
p2: 1
p3: 1
此外,添加的第一个项目未显示。
左图是预期的输出,而我是正确的输出。 如何解决这个问题?