The scene constantly keeps record of the position of the item in its internal binary space partition tree. Thus, on every move of an item, the scene has to update the tree, an operation that can become quite time-and memory-consuming. This is especially true of scenes with a large number of animated items. On the other hand, the tree enables you to find an item (for example, with
itemAt()) incredibly fast even if you have thousands of items.
So when you do not need any positional information about the items—this also includes collision detection—you can disable the index function by calling
setItemIndexMethod(QGraphicsScene::NoIndex). Be aware, however, that a call to
itemAt() results in a loop through all items in order to do the collision detection, which can cause performance problems for scenes with many items. If you cannot relinquish...