Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] Affichage du smiley

bouton.setIcon(QIcon("smiley.png"));

Sujet résolu
    27 février 2008 à 19:34:41

    Salut,

    Dans l'avant dernier tuto de mateo : http://www.siteduzero.com/tuto-3-27684-1-personnaliser-les-widgets.html#ss_part_2
    Il nous donne la methode bouton.setIcon(QIcon("smiley.png")); pour afficher une icone.
    Mon probleme est que l'icone ne s'affiche pas. aucun warning ni erreur a la compilation.

    @+
    PS : j'utilise linux.
    • Partager sur Facebook
    • Partager sur Twitter
      27 février 2008 à 19:39:57

      le smiley doit se trouver dans le même dossier que le fichier .exe !!!!!!!!
      • Partager sur Facebook
      • Partager sur Twitter
        27 février 2008 à 20:09:58

        C'est le cas.

        Ce qui est bizard c'est que la tail du bouton change si je met bouton.setIcon(QIcon("smiley.png"));
        Mais l'icone ne s'aviche pas, le texte est juste un peut decaler a droite.
        • Partager sur Facebook
        • Partager sur Twitter
          28 février 2008 à 17:50:52

          Normal le smilley c'ets smile.png soit tu fiat
          outon.setIcon(QIcon("smile.png"));
          sois tu renomme le fichier ;)
          • Partager sur Facebook
          • Partager sur Twitter
            29 février 2008 à 1:48:40

            J'avais renomer le fichier
            Mais en fait ca ne s'affiche pas, mais l'enplacement est reserver.
            • Partager sur Facebook
            • Partager sur Twitter
              29 février 2008 à 3:04:42

              Peux-tu donner ton code s'il te plait ?

              Merci par avance ;)
              • Partager sur Facebook
              • Partager sur Twitter
                29 février 2008 à 3:17:10

                Salut,

                Voici le code et 2 images pour monter ce qui ce passe.
                Le main:
                1. #include <QApplication>
                2. #include "MaFenetre.hpp"
                3. int main(int argc, char *argv[])
                4. {
                5.     QApplication app(argc, argv);
                6.     MaFenetre fenetre;
                7.     fenetre.show();
                8.     return app.exec();
                9. }
                Ma fenetre.h puis le cpp
                1. #ifndef DEF_MAFENETRE
                2. #define DEF_MAFENETRE
                3. #include <QApplication>
                4. #include <QWidget>
                5. #include <QPushButton>
                6. class MaFenetre : public QWidget
                7. {
                8.     public:
                9.     MaFenetre();
                10.     private:
                11.     QPushButton *m_bouton;
                12. };
                13. #endif
                1. #include "MaFenetre.hpp"
                2. MaFenetre::MaFenetre() : QWidget()
                3. {
                4.     setFixedSize(300, 150);
                5.     // Construction du bouton
                6.     m_bouton = new QPushButton(QIcon("smile.jpg"),"Pimp mon bouton !", this);
                7.     m_bouton->setFont(QFont("Comic Sans MS", 14));
                8.     m_bouton->setCursor(Qt::PointingHandCursor);
                9.     //m_bouton->setIcon(QIcon("smiley.png"));
                10.     m_bouton->move(60, 50);
                11. }

                Voila ce que ca donne en image.
                Sans Icone puis avec:
                Image utilisateurImage utilisateur
                @+
                • Partager sur Facebook
                • Partager sur Twitter
                  29 février 2008 à 11:34:25

                  Salut !
                  Ton code a l'air bon. Cependant l'erreur ne vient-elle pas du fait que tu ai mis
                  1. #include "MaFenetre.hpp"
                  au lieu de
                  1. #include "MaFenetre.h"
                  ??
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 février 2008 à 12:59:11

                    Salut.

                    Si tu n'as pas modifié le smiley, alors tu devrait plutôt écrire "smile.png" au lieu de "smile.jpg".
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 février 2008 à 12:59:53

                      1. m_bouton = new QPushButton(QIcon("smile.jpg"),"Pimp mon bouton !", this);

                      Ce ne serait pas tout simplement smile.png ?

                      (posté en même temps)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 février 2008 à 15:13:58

                        En fait j'ai 2 fichier pour faire les test.
                        -> smile.jpg
                        -> smiley.png
                        Il son tout les 2 dans le repertoire de l'executable de l'executable.
                        Pour MaFenetre .h ou .hpp ou .bidulechouette c'est pareil, ca n'as aucune importance.

                        @+
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 février 2008 à 15:44:31

                          une question, utilise tu Kubuntu?
                          si oui, j'ai eu une expérience similaire : il semblerait que le programme cherche les fichiers dans le dossier personnel... ( /home/tonNom/ ). essaie de mettre ton image dans ce dossier-ci.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
                            29 février 2008 à 16:49:02

                            où sinon tu peux tenter relatif :
                            1. QIcon("./smile.jpg")

                            ou absolu :
                            1. QIcon("/home/login/dossier/prog/blabla/smile.jpg")

                            • Partager sur Facebook
                            • Partager sur Twitter
                              1 mars 2008 à 2:40:06

                              Salut,

                              Merci a shadosan
                              en effet ca fonctionne en metant les images dans le repetoire /~/

                              donc maintenant faut que je trouve comment modifier ca.

                              Merci encore
                              @+

                              ps pour minirop.
                              1. QIcon("./smile.jpg")
                              ne peut pas fonctionner car ./ est /home/login/ donc je suis obliger de metre e absolu ou alors ./dossier/blabla/smiley.png
                              • Partager sur Facebook
                              • Partager sur Twitter
                                1 mars 2008 à 3:26:09

                                j'ai fouillé un peu, et j'ai trouvé une solution qui marche, que ce soit sur Windows ou linux :

                                1. QIcon(QCoreApplication::applicationDirPath() + "/smile.jpg")


                                applicationDirPath() est une méthode statique de QCoreApplication, qui retourne le chemin absolu (en format QString) vers le dossier contenant l'exécutable.

                                Bon, c'est long à écrire, mais ça a l'avantage de fonctionner :D
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
                                  1 mars 2008 à 11:09:22

                                  J'ai rajouté cette info dans le tuto merci :)
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                                    1 mars 2008 à 12:59:21

                                    salut,

                                    shadosan Merci encore,
                                    une hola pour shadosan :lol:
                                    @+
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      1 mars 2008 à 15:17:44

                                      super :D

                                      [dans le tuto] mais uhh dans le tutoriel, ce n'est pas smile.jpg ; c'est smile.png ^^
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
                                        1 mars 2008 à 17:44:22

                                        Ba chez moi (Ubuntu Gusty) ça marche sans avoir besoin de cette méthode, pourtant mon projet se trouve dans /home/spotzup/Prog/C++/Qt4/Test
                                        Ca marche parce qu'il se trouve dans un sous-répertoire de /home ou alors le problème est plus complexe ?

                                        Sinon dans ton tuto M@téo faudrait faire gaffe: un coup c'est smile.png, un coup c'est smiley.png, un coup c'est smiley.jpg...
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          1 mars 2008 à 18:34:19

                                          Citation : Pas de titre

                                          Ba chez moi (Ubuntu Gusty) ça marche sans avoir besoin de cette méthode, pourtant mon projet se trouve dans /home/spotzup/Prog/C++/Qt4/Test


                                          Ca marche parce qu'il se trouve dans un sous-répertoire de /home ou alors le problème est plus complexe ?
                                          il semblerait que cela soit différent si tu appelle ton exécutable à partir de la console ou à partir de ton gestionnaire de fichiers (ex:dolphin)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!

                                          [Qt] Affichage du smiley

                                          × 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