Hi wysota, thanks for your response.
> boundingRect() is necessary for the architecture to know which items to repaint when a
> particular area needs refreshing.
I already know which QGItems I need to repaint, and I've tried to force to update just the boundingRect of these items, through QGraphicsItem.update(QRect) and QGraphicsScene.update(QRect) calls. But I still encounter an onslaught of unnecessary boundingRect() calls, that kill my performance.
> It also defines a local coordinate system for each item,
> so unless you want to strip away everything the graphics view gives you (I mean all
> benefits), it will be hard to get rid of boundingRect() and collision detection.
So each QGraphicsItem.paint() call requires a boundingRect() call. I can dig that because I can tell the QGraphicsView framework which areas to repaint. Going back to my .update() use above, I'm still not clear why the .update(QRect) function can not just redefine the local coordinate system starting at the .x() .y() of the QRect I pass to .update(). Can I just repaint that QRect another way? is there some other intended functionality of applying this parameter to the update function?
> On the other
> hand if you want to get rid of them, maybe you shouldn't use graphics view at all?
I disagree completely. There's lots of great stuff under the hood, that Indexing seems to kill the performance of when more than a few tens of thousands of QGraphicsItems are present in the scene. So an option is offered to turn indexing off, but no option to reimplement where to repaint? It just seems like not a very big step to uncover some real performance flexibility.
Thanks again for your time.
Deacon
Bookmarks