Haven't been able to get this down pat....kinda feel like a noob because of this, so I thought I'd post in this area.

I use a rubberband to enlarge the scene using qgraphicsview's scale.
here's the code for it:

Qt Code:
  1. if(this->viewport()->width()>this->viewport()->height())
  2. increaseZoom = this->viewport()->height()/m_deltaMouseZoomY;
  3. else
  4. increaseZoom = this->viewport()->width()/m_deltaMouseZoomX;
  5.  
  6. double offSetX = this->viewport()->width() - m_deltaMouseZoomX;
  7. double offSetY = this->viewport()->height() - m_deltaMouseZoomY;
  8.  
  9. scale(increaseZoom, increaseZoom);
  10.  
  11. this->verticalScrollBar()->setSliderPosition(mapFromScene(m_zoomInStartPointScene).y()-this->viewport()->height()+(offSetY/2));
  12. this->horizontalScrollBar()->setSliderPosition(mapFromScene(m_zoomInStartPointScene).x()-this->viewport()->width()+(offSetX/2));
To copy to clipboard, switch view to plain text mode 

This code is almost right, but sometimes you need to adjust the scroll bars just a little so that whatever was in the rubberband stays in centred in the viewport.

many thanks to anyone who can figure out why this is so close but off by a couple of clicks on the the scroll bars.