IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Dimensionnement de scènes avant enregistrement


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Par défaut Dimensionnement de scènes avant enregistrement
    Bonjour,

    J'ai une QGraphicsScene contenant des QGraphicsItem, à l'affichage dans le programme, il n'y a pas trop de problèmes de dimensionnement, tout est nikel.

    Par contre, je souhaiterais exporter ma Scène en format .SVG et .JPG.

    J'y arrive par contre, le résultat est vraiment très loin de mes attentes...

    La scène n'occupe qu'une partie minime de n'espace sur le JPEG et je n'arrive pas à régler ça.

    De plus, sur le .SVG, l'enregistrement de la scène est complètement inverser et il faut zoomer longtemps avant de commencer à voir apparaitre la scène.

    Voici mon bout de code qui réalise l'export :

    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
    20
    //Dump to JPEG
          if(fileName.contains(".jpg"))
    	{
    	  QImage img(QSize(1280,1024),QImage::Format_RGB32);
    	  QPainter painter;
    	  painter.begin(&img);
    	  painter.fillRect(0,0,1280,1024,Qt::white);
    	  _scene->render(&painter);
    	  painter.end();
    	  img.save(fileName);
    	}
          // Dump to SVG
          else if(fileName.contains(".svg"))
    	{
    	  QSvgGenerator gen;
    	  gen.setFileName(fileName);
    	  QPainter svgPainter(&gen);
    	  _scene->render(&svgPainter);
    	  svgPainter.end();
    	}

    Et ci-join les résultats d'exportations.

    Merci !

    (ps: le .svg est dans le .zip)
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Par défaut
    Et voici pour infos la redéfinition de boundingRect() dans le QGraphicsItem. (en faite il n'y a qu'un seul item dans ma scene, c'est le bargraph entier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #define BARGRAPH_Y_SIZE 1800
    #define BARGRAPH_X_SIZE 800
     
     virtual QRectF boundingRect() const
      {
        return QRectF(0,0,BARGRAPH_Y_SIZE,BARGRAPH_X_SIZE);
      };

  3. #3
    Membre éprouvé Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Par défaut
    Quelqu'un a une idée?

  4. #4
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    As-tu déjà essayé de forcer le paramètre source de QGraphicsScene::Render() au bounding rect de ton item ? Dans le même esprit, es-tu certain que le boundingRect de ton item est utilisé dans son ensemble ? (Tu peux tracer ses contours éventuellement pour t'en assurer)

Discussions similaires

  1. Vérification de champs dans tableau complexe avant enregistrement
    Par Starneo dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/09/2009, 09h47
  2. [XL-2003] annuler tout avant enregistrement
    Par olivier-tig dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/05/2009, 14h00
  3. Réponses: 5
    Dernier message: 28/08/2008, 12h04
  4. Réponses: 10
    Dernier message: 21/06/2006, 14h50
  5. [Formulaire] vérifier les champs avant enregistrement
    Par julien_t_m dans le forum Access
    Réponses: 5
    Dernier message: 16/10/2005, 20h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo