Bonjour,

Je souhaiterais enregistré en format JPG une QGraphicsScene (composée de QGraphicsItem...)

J'ai déjà codé la partie mais rien n'est enregistré (aucun fichier créé)

Voici mon code de sauvegarde :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
void MaClasse::save()
{
  QString fileName = QFileDialog::getSaveFileName(this, tr("Save Bargraph Image"),
                                                  "./bargraph.jpg",
                                                  tr("JPEG (*.jpg)"));
  if (fileName != "")
    {
      QImage img;
      QPainter painter(&img);
      _scene->render(&painter);
      img.save(fileName);
    }
}
_scene est mon pointeur vers la QGraphicsScene.

A noté que avec le debug, j'obtiens à la création du painter :

(gdb) warning: QPainter::begin: Paint device returned engine == 0, type: 3

Ensuite pendant l'exécution de render() j'ai beaucoup de warning :
[...]
warning: QPainter::save: Painter not active

warning: QPainter::setClipRect: Painter not active

warning: QPainter::setWorldTransform: Painter not active

warning: QPainter::worldTransform: Painter not active
[...]


Quelqu'un aurait une piste pour savoir d'où provient l'erreur ?