【发布时间】:2014-04-10 02:31:00
【问题描述】:
我认为我可以使用下面的代码在它离开场景后移除任何项目,但事实并非如此。在尝试了不同的实现之后,我想我应该尝试另一种方法。一些 QGraphicsItems 实际上是在 boundingRect 之外开始的,所以我想知道是否有办法在它们通过某个坐标点后删除和删除 GraphicsItems。
void Scene::advance()
{
QList <QGraphicsItem *> itemsToRemove;
foreach( QGraphicsItem * item, this->items())
{
if( !this->sceneRect().intersects(item->boundingRect()))
{
// The item is no longer in the scene rect, get ready to delete it
itemsToRemove.append(item);
}
}
foreach( QGraphicsItem * item, itemsToRemove )
{
this->removeItem(item);
delete(item);
}
QGraphicsScene::advance();
}
【问题讨论】:
标签: c++ qt coordinate-systems