Depuis une dizaine de jours, je bloque sur l'utilisation de QGraphicsScene::drawBackground

mon code fonctionnel avant tentative utilisation drawBackgound:

mycode.h

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
scene = new QGraphicsScene();
view = new QGraphicsView(scene);
QImage image.load(filename);
QPixmap pix=QPixmap::fromImage(image);
QPainter *painter=new QPainter(&pix);
QGraphicsPixmapItem *img_fond=scene->addPixmap(pix);
le code avec tentative ajout drawBackground

mycode.h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
scene = new myscene();
view = new QGraphicsView(scene);
QImage image.load(filename);
QPixmap pix=QPixmap::fromImage(image);
QPainter *painter=new QPainter(&pix);
scene->drawBackground(painter,scene->rect());
view->setScene(scene);  // utile ?
mycode_scene.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
#ifndef MYCODESCENE_H
#define MYCODESCENE_H
 
#include <QGraphicsScene>
 
class myscene : public QGraphicsScene
{
  Q_OBJECT
public:
myscene();
virtual void drawBackground ( QPainter * painter, const QRectF & rect );
~myscene();
}
;
 
#endif
mycode_scene.cpp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#include <QtGUI>
#include "mycode_scene.h"
 
myscene::myscene()
{
  qDebug()<<"constructeur myscene";
}
 
void myscene::drawBackground ( QPainter * painter, const QRectF & rect )
{
  qDebug()<<"appel drawbackground";
  QGraphicsScene::drawBackground(painter,rect);
}
 
myscene::~myscene()
{
  qDebug()<<"destructeur myscene";
}
Dans la console, j'ai bien l'affichage de "appel drawBackground" et même plusieurs fois, par contre mon img de fond ne s'affiche pas.

Merci de bien vouloir m'aider, ça fait 10 jours que je suis là dessus. ( heureusement pas à plein temps mais bon )

Par ailleurs, le fait que la fonction drawBackground soit protected et non pas public signifie t"elle qu'il ne vaut mieux pas l'utiliser.

A la base je tente d'utiliser cette fonction pour récupérer après la position de la souris dans ma scene/view. A savoir que l'itemAt retourné me donne toujours l'image et non pas les autres éléments (QGraphicsRectItem)