Funny you say that... For me the zooming functionality does exactly what I think it should do - it... zooms And it surely doesn't improve resolution as the device you are painting on has a finite and fixed resolution so there is no way you can ever get a greater resolution. What graphics view does is that it delays translation from logical (real) to device (integer) coordinates and that's exactly what zooming is. Zooming doesn't increase resolution of the output, it makes things bigger (or smaller) using a fixed resolution - just like a photo camera - by zooming in you limit the area that is visible and extend it to the whole viewport, but the grain of the film remains the same. It is true you see more details of the viewed object and in these terms the resolution increases. That's exactly the same with graphics view.

And you are wrong with your last sentence I think it comes from the probable fact that you do something wrong in your code and you think it has to be that way. Just launch the "chip" demo from Qt, play with it (especially with zooming and rotation) and read again your last sentence. This is the next time you are wrong with your statements about graphics view. It's high time you came to a conclusion it is actually worth reading the available documentation on the subject before making such strong statements.

Here is a small demo related to "resolution".
Qt Code:
  1. #include <QtGui>
  2.  
  3. class ResItem : public QGraphicsRectItem {
  4. public:
  5. ResItem() : QGraphicsRectItem(){}
  6.  
  7. void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ){
  8. QPen p = painter->pen();
  9. p.setCosmetic(true);
  10. painter->setPen(p);
  11. QGraphicsRectItem::paint(painter, option, widget);
  12. qreal lod = option->levelOfDetail;
  13. qreal left = rect().left();
  14. qreal wid = rect().width();
  15. if(lod>=0.2)
  16. for(qreal i = 0; i<wid;i+=10.0){
  17. painter->drawLine(QLineF(left+i, rect().bottom(), left+i, rect().bottom()-10));
  18. if(lod>=1.0){
  19. for(qreal j = 1.0; j<5; j+=1.0){
  20. painter->drawLine(QLineF(left+i+2*j, rect().bottom(), left+i+2*j, rect().bottom()-5));
  21. if(lod>=4){
  22. for(qreal k = 0.4; k<2.0; k+=0.4){
  23. painter->drawLine(QLineF(left+i+2*j+k, rect().bottom(), left+i+2*j+k, rect().bottom()-2));
  24. }
  25. }
  26. }
  27. }
  28. }
  29. }
  30. };
  31.  
  32. class GraphicsView : public QGraphicsView {
  33. public:
  34. GraphicsView():QGraphicsView(){}
  35. protected:
  36. void wheelEvent(QWheelEvent *e){
  37. int delta = e->delta();
  38. if(delta>0) scale(1.2, 1.2);
  39. else if(delta<0) scale(1.0/1.2, 1.0/1.2);
  40. }
  41. };
  42.  
  43. int main(int argc, char **argv){
  44. QApplication app(argc,argv);
  45. GraphicsView view;
  46. view.setScene(new QGraphicsScene(0,0,600,400));
  47. ResItem *item = new ResItem;
  48. item->setRect(-50, -50, 300, 100);
  49. view.scene()->addItem(item);
  50. item->setPos(300,250);
  51. item->setFlag(QGraphicsItem::ItemIsMovable);
  52. view.show();
  53. return app.exec();
  54. }
To copy to clipboard, switch view to plain text mode 

Use the mouse wheel to see the effect.