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

Discussion :

Impossible d'afficher une QImage, problème de format ? [2D/3D]

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut Impossible d'afficher une QImage, problème de format ?
    Bonjour,

    Je n'arrive pas à afficher un dessin dans une image. Le code suivant se compile mais génère une erreur d'exécution invitant à envoyer un message à microsoft (J'utilise Qt Creator sous winXP)

    Voici mon code :

    Code MainWindow .h : 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
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
     
    public:
        MainWindow(QWidget *parent = 0);
        ~MainWindow();
           QLine *Ligne1;
        QPainter *Painter;
        QImage *Image; 
     
    private:
        Ui::MainWindow *ui;
     
    private slots:
        void on_pushButton_clicked();
    };

    Code MainWindow.cpp : 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
    21
    22
    23
    24
    25
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent), ui(new Ui::MainWindow)
    {
            Ligne1 = new QLine(0,0,90,90);
        Painter = new QPainter();
        Image = new QImage (100,100,QImage::Format_Indexed8);
        Image->fill(200);
        Image->setOffset( QPoint(10,10) );
     
    }
     
     
    void MainWindow::on_pushButton_clicked()
    {
        Painter->begin(Image); 
     
        Painter->drawLine(*Ligne1); 
         QRectF target(60, 60, 180.0, 180.0);
     
     
     
         Painter->drawImage(target, *Image); //c'est cette ligne de code qui provoque l'erreur d'execution !!
     
          Painter->end();
    }

    merci de votre aide

    montin

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 136
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    La boite qui s'affiche vous invitant à écrire à Microsoft pour leur demandant de debugguer votre programme ( oui, oui, ils viennent chez vous, il débuggue votre programme , trop fort les gars ), est juste causé par une erreur de segmentation.

    Maintenant pour rappel, une erreur de segmentation arrive lorsque l'on essaie d'accéder à une partie de la mémoire qui n'est pas à nous ( pointeur invalide déférencé, accès hors de la mémoire alloué ( dépassement d'un tableau ) ... )
    Dans votre cas, il semble que vous ayez repéré la ligne , c'est déjà une bonne chose.

    Maintenant, si j'en crois ma logique, c'est parce que vous essayez de dessiner une image de taille 90 x 90 dans un rectangle de taille 120 x 120. Qt va surement essayer de remplir le rectangle avec l'image, donc à un certain moment, dépassé les pixels de l'image en essayant de remplir le rectangle.
    En changeant la taille du rectangle pour une taille de 90x 90 je pense que cela va fonctionner mieux
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut QImage sous QTcreator
    Merci LittleWhite

    Non c'est pas ça. J'avais prevu le rectangle plus grand que l'image expres pour eviter cela. Mais même en mettant exactement la meme taille pour l'image et le rectangle, j'ai toujours la même erreur d'execution avec drawImage !

    Montin

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Bonjour

    Le problème vient du format d'image. Comme indiqué dans la doc (http://qt.developpez.com/doc/latest/...ml#format-enum), QPainter n'est pas compatible avec Format_Indexed8. En utilisant un autre format (par exemple Format_ARGB32), ça fonctionne correctement chez moi.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut Qimage sous qtcreator
    Merci gbdivers

    C'est OK aussi pour moi!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible d'afficher une applet
    Par saispasfau dans le forum Applets
    Réponses: 1
    Dernier message: 25/05/2007, 16h40
  2. [Debutant] Afficher une date avec un format short
    Par lilou77 dans le forum BIRT
    Réponses: 12
    Dernier message: 11/01/2007, 09h25
  3. impossible d'afficher une applet à traver un servlet
    Par 2tsiris dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/06/2006, 09h41
  4. [LWJGL] Impossible d'afficher une fenêtre
    Par gege2061 dans le forum API graphiques
    Réponses: 4
    Dernier message: 06/05/2006, 19h56
  5. [C#] Impossible d'afficher une form dans la barre des taches
    Par padodanle51 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/05/2006, 09h30

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