Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] Probléme pour insérer une image

heeeeelp!!!

Sujet résolu
    17 mars 2008 à 19:12:41

    Salut,
    J'essaye d'afficher une image en essayant de suivre les régles mais ya une erreur qui s'affiche lors de la compilation

    MaFenetre.cpp

    1. #include "MaFenetre.h"
    2.  //Conctructeur
    3. MaFenetre::MaFenetre() : QWidget()
    4. {
    5. setFixedSize(230, 120);
    6. image = new QImage ("Sample04.jpeg");
    7. monPixmap = new QPixmap();
    8. monPixmap = QPixmap::fromImage(image);
    9. }


    MaFenetre.h

    1. #ifndef DEF_MAFENETRE
    2. #define DEF_MAFENETRE
    3. #include <QApplication>
    4. #include <QWidget>
    5. #include <QPushButton>
    6. #include <QProgressBar>
    7. #include <QSlider>
    8. #include <QMessageBox>
    9. #include<QInputDialog>
    10. #include <QLabel>
    11. #include <QImage>
    12. #include <QPixmap>
    13. class MaFenetre : public QWidget // On hérite de QWidget (IMPORTANT)
    14. {
    15.       Q_OBJECT
    16.     public:
    17.     MaFenetre();
    18.     private:
    19.     QImage *image;
    20.     QPixmap *monPixmap;
    21. };
    22. #endif


    Et la main est classique.

    L'erreur que j'ai lors de la compilation est la suivante:
    MaFenetre.cpp :9:no matching function for call 'QPixmap::fromImage(QImage)
    o_O

    Merci de m'aider.

    EDIT: mon probléme n'a pas de solution ou quoi? o_O
    • Partager sur Facebook
    • Partager sur Twitter
      17 mars 2008 à 20:32:08

      hm.. je vois pas d'erreur :euh:

      rien que pour tester, essaie :

      1. monPixmap = monPixmap->fromImage(image);
      • Partager sur Facebook
      • Partager sur Twitter
      Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
        17 mars 2008 à 20:47:24

        tente ça :
        1. #ifndef DEF_MAFENETRE
        2. #define DEF_MAFENETRE
        3. #include <QApplication>
        4. #include <QWidget>
        5. #include <QPushButton>
        6. #include <QProgressBar>
        7. #include <QSlider>
        8. #include <QMessageBox>
        9. #include<QInputDialog>
        10. #include <QLabel>
        11. #include <QImage>
        12. #include <QPixmap>
        13. class QPixmap;
        14. class QImage;
        15. class MaFenetre : public QWidget // On hérite de QWidget (IMPORTANT)
        16. {
        17.       Q_OBJECT
        18.     public:
        19.     MaFenetre();
        20.     private:
        21.     QImage *image;
        22.     QPixmap *monPixmap;
        23. };
        24. #endif
        • Partager sur Facebook
        • Partager sur Twitter
        :)
          17 mars 2008 à 21:00:00

          Nouvelle erreur : fromImage est statique, elle ne peut pas changer le monPixmap o_O
          • Partager sur Facebook
          • Partager sur Twitter
            18 mars 2008 à 9:57:47

            D'après ce que j'ai compris sur les images de QT et vue que dans mon prog ça marche je dirais de faire comme ceci :

            1. #include "MaFenetre.h"
            2. MaFenetre::MaFenetre() : QWidget()
            3. {
            4. setFixedSize(230120);
            5. QImage *image = new QImage ("Sample04.jpeg");
            6. QPixmap *monPixmap = new QPixmap();
            7. monPixmap->fromImage(image);
            8. }




            Enfin en réalitée pour les placer moi j'utilise ceci qui n'est peut etre pas prévue pour :

            1. #include "MaFenetre.h"
            2. MaFenetre::MaFenetre() : QWidget()
            3. {
            4. setFixedSize(230120);
            5. QLabel *image = new QLabel (this);
            6. image->setPixmap(QPixmap("Sample04.jpeg"));
            7. }


            Sans oublier de metre l'include QLabel

            En espérant que ça puisse t'aider.
            • Partager sur Facebook
            • Partager sur Twitter
              18 mars 2008 à 10:50:17

              Ben non ça ne marche pas non plus, mais merci quand même ^^

              J'ai trouvé un autre moyen, pour ceux qui ont le même probléme, consultez la doc, y a un exemple de imageViewer qui pourra aider :)
              • Partager sur Facebook
              • Partager sur Twitter
                30 mars 2008 à 4:57:00

                Salut, je suis super-new, mais j'ai trouvé une solution à ce soucis dans la doc, via l'utilisation de QLabel à partir d'un fichier image quelconque.
                dans mon example c'est un .bmp, mais ça marche aussi avec les .jpg, .gif, etc..

                Dans ton fichier cpp tu affiches l'image comme ça :

                1. QLabel m_image = new QLabel(this);
                2. m_image.setPixmap(QPixmap::fromImage(QImage("image.bmp")));


                Ici le QLabel est inclus dans un QWidget, à l'intérieur duquel j'implémente le QLabel, d'où l'utilisation de 'this'. sinon pointe vers l'objet conteneur.

                Les fonctions sont incluses les unes dans les autres et c'est un peu dur à lire (moi, j'ai du mal), mais ça marche impec.
                En 'français courant', le fichier image.bmp est déclaré dans un QImage, qui est alors transformé en QPixmap, pour être ensuite utilisé par la méthode setPixmap de ton objet QLabel nouvellement créé.

                Edit : enfin là tu crée un objet dans l'objet, c'est pas forcément glop.
                Sinon tu déclare un QLabel *image dans le header et tu utilises image->setPixmap()... surtout si c'est dans l'implémentation du constructeur de la classe-objet !
                • Partager sur Facebook
                • Partager sur Twitter
                  30 mars 2008 à 10:48:46

                  Tu veux faire quoi exactement ? Car pour afficher une image il me semble que tu dois instancier un QPainter et appeller sa methode drawPix().
                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 mars 2008 à 11:01:23

                    1. QLabel *m_image = new QLabel( new QPixmap("image.bmp"));


                    essaye sa
                    • Partager sur Facebook
                    • Partager sur Twitter
                    :)

                    [Qt] Probléme pour insérer une image

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown