How can I resize the background image to fit in the scene background?

The image is shown out of the scene.


mainview.cpp
Qt Code:
  1. MainView::MainView(QGraphicsView *parent)
  2. : QGraphicsView(parent)
  3. {
  4. view = new QGraphicsView();
  5. scene = new QGraphicsScene(0,0,QApplication::desktop()->width(),QApplication::desktop()->height());
  6.  
  7. image = new QImage("C:/fundo_01.png");
  8. QImage lampada_on, lampada_off, lampada_on2, lampada_off2;
  9. lampada_on.load("C:/lampada_on.png");
  10. lampada_off.load("C:/lampada_off.png");
  11. lampada_on2.load("C:/lampada_on2.png");
  12. lampada_off2.load("C:/lampada_off2.png");
  13.  
  14.  
  15. QAbstractGraphicsShapeItem* i = new Icon(lampada_on2, lampada_off2);
  16. QAbstractGraphicsShapeItem* j = new Icon(lampada_on, lampada_off);
  17. scene->addItem(i);
  18. scene->addItem(j);
  19.  
  20. setScene(scene);
  21.  
  22. setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  23. setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  24. }
  25.  
  26. void MainView::resizeEvent(QResizeEvent *event)
  27. {
  28. QGraphicsView::resizeEvent(event);
  29. fitInView(QRectF(0,0,scene->width(),scene->height()), Qt::IgnoreAspectRatio);
  30. }
  31.  
  32. void MainView::drawBackground(QPainter *painter, const QRectF &rect)
  33. {
  34. painter->setRenderHint(QPainter::SmoothPixmapTransform);
  35. QRectF r;
  36.  
  37. r.setRect(0,0,image->width(),image->height());
  38. painter->drawImage(r,*image);
  39. }
To copy to clipboard, switch view to plain text mode 


mainview.h
Qt Code:
  1. class MainView : public QGraphicsView
  2. {
  3. Q_OBJECT
  4. public:
  5. MainView(QGraphicsView *parent=0);
  6. ~MainView() {};
  7.  
  8. private:
  9. QImage *image;//, *lampada_on, *lampada_off, *lampada_on2, *lampada_off2;
  10.  
  11. protected:
  12. void resizeEvent(QResizeEvent *event);
  13. void drawBackground(QPainter *painter, const QRectF &rect);
  14. };
To copy to clipboard, switch view to plain text mode