我一直在使用Qt Creator近一个月了。我希望这不是一个愚蠢的问题,因为它长期困扰我。
我想实现:
QGraphicsScene
中创建许多不同的项目(比方说每秒20个)。尝试了很多方法后,我看到的最好方法是使用QGraphicsItemGroup
。我试图将所有这些组合成QGraphicsItemGroup
。但是在将一个项目添加到一个组中之后,无论我在库中使用什么功能,该项目都不再显示在场景中。
在使用QGraphicsItemGroup
时,我是否做错了什么?还是有其他更好的apporaches?
期待任何人的帮助。非常感谢。
以下是我的代码结构:
// ......
QGraphicsItemGroup *myItemsGroup = new QGraphicsItemGroup
timer->start(100);
connect(timer,SIGNAL(timeout()),this,SLOT(draw_trail()));
// ......
void MyFunction::draw_trail()
{
Trail_item *new_item = new Trail_item;
scene->addItem(new_item);
new_item->setX(COPX-7);
new_item->setY(COPY-7);
new_item->setZValue(5);
/*
then I started trying add to group
//myItemsGroup->addToGroup(new_item)
after adding this line, the item vanishes.
*/
}
(注意:trail_item
是我创建的项目类。由于它是一个循环,我不知道如何更改*new_item
指针名称,因此所有项目都具有相同的名称。)< / p>
答案 0 :(得分:1)
确保您在场景中添加了QGraphicsItemGroup
,并且QGraphicsItemGroup
可见。
您可以使用方法QGraphicsItemGroup
QGraphicsItem
添加到任何其他QGraphicsScene::addItem(QGraphicsItem*)
的场景中