Subclass QGraphicsRectItem, add some debug messages to this class's paint() method, add an instance of it to your scene and enable caching for it. If paint() gets called after changing the rect of the item, then the blame is in your item code. If it doesn't it's somewhere else (e.g. scene code?).
Bookmarks