Bonjour,

J'ai le code suivant.

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
 
    int longueur=scene->sceneRect().width();
    int largeur=scene->sceneRect().height();
    img=QImage(longueur,largeur,QImage::Format_ARGB32);
    QPainter painter(&img);
    scene->render(&painter);
    for (int boucle_x=0;boucle_x<img.width();++boucle_x)
    {
      for (int boucle_y=0;boucle_y<img.height();++boucle_y)
      {
        pixel=img.pixel(boucle_x,boucle_y);
        gris=qGray(pixel);
        img.setPixel(boucle_x,boucle_y,qRgb(gris,gris,gris));
      }
    }
    scene->clear();
    scene->addPixmap(QPixmap::fromImage(img));
Je prend le contenu de ma QGraphicsView dans un QImage. Puis je passes l'image en niveaux de gris. Ensuite j'efface la scene et y mets mon QImage. Cela fonctionne très bien.

J'ai voulu remplacer par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
img=QPixmap::grabWidget(view).toImage();
Mon image est plus petite et dans un cadre.

En recherchant, voila d'ou vient le problème :
La taille de ma scene et de ma view retourne 800x607 ( 607 du au chargement d'une image )
la taille de l'img génerée par grabwidget : 835x440

J'ai trouvé le problème mais pas l'explication. Du coup je garde le code via QPainter.
Si quelqu'un sait pourquoi ça ne marche pas, je suis interessé.

Merci.