Affiche une image sur mon interface

cs_ribh Messages postés 7 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 4 mars 2008 - 4 mars 2008 à 12:15
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 - 4 mars 2008 à 18:11
pour afficher une image j'ai fait ce petit code:

int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QLabel label;
//on donne l'image au label
label.setPixmap(QPixmap("c :/image017.png"));
label.show();
QObject::connect(label, SIGNAL(clicked()), qApp, SLOT(quit()));
return app.exec();
}

mais en le compilant ca il m'affiche rien , j'ai pas compris quel est le probleme.
si quelqu'un peut m'aider je le remercie.

13 réponses

cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
4 mars 2008 à 13:03
Il y a un espace entre "c" et ":" dans le nom de l'image ! c'est une erreur de recopie ou c'est comme ça dans le source ?

Jean-François
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
4 mars 2008 à 13:21
Je doute que tu puisses afficher un label hors fenetre. Faudrait déjà créer une fenetre, puis y insérer un label, ou un objet plus adapté à l'affichage de pixmap.
0
cs_ribh Messages postés 7 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 4 mars 2008
4 mars 2008 à 14:09
Le message d'erreur c'est:

error: no matching function for call to ?QLabel::QLabel()?
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
4 mars 2008 à 14:23
Mais quelqu'un t'as déja répondu sur ce problème ...
http://www.cppfrance.com/infomsg_AFFICHAGE-IMAGE_1085914.aspx#3

Pas de constructeur par défaut donc:
QLabel label(QString());
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
4 mars 2008 à 14:30
Dans le programme il y a la ligne :

QLabel label;

Ce qui correspond à l'instanciation de la classe QLabel dans l'objet label, avec appel automatique du constructeur par défaut QLabel()(c'est à dire du constructeur qui n'a pas de paramètre). Or de toute évidence il n'y a pas de constructeur par défaut dans la classe QLabel (no matching function call to 'QLabel::QLabel()' = pas de fonction correspondant à l'appel de 'QLabel::QLabel()').

Le(s) seul(s) constructeur(s) qui est/ont été prévu(s) dans cette classe QLabel ont un/des paramètre(s).
Il devrait donc y avoir quelque chose comme :

QLabel label("texte du label");

Jean-François
0
cs_ribh Messages postés 7 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 4 mars 2008
4 mars 2008 à 14:43
j'ai instancier la classe QLabel:

QLabel *label=new QLabel("&name:",this );//on donne l'image au label
label.setPixmap(QPixmap("c:/image017.png"));
label.show();
QObject::connect(label, SIGNAL(clicked()), qApp, SLOT(quit()));

il me donne un message d'erreur qui estt le suivat:

error: request for member ?setPixmap? in ?label?, which is of non-class type ?QLabel*?
mafenetre.cpp:30: error: request for member ?show? in ?label?, which is of non-class type ?QLabel*?
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
4 mars 2008 à 14:58
Où c'est :

QLabel *Label(...);
Label->setPixmap(...);

où c'est :

QLabel Label(...);
Label.setPixmap(...);

Mais pas le mélange des 2 !
Jean-François
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
4 mars 2008 à 15:06
Ou c'est :

QLabel *Label
Label->setPixmap(...);

ou c'est :

QLabel Label
Label.setPixmap(...);

Mais pas le mélange des 2 !
C'est mieux sans fautes !

Jean-François
0
cs_ribh Messages postés 7 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 4 mars 2008
4 mars 2008 à 16:30
merci Jean-François ca marche si je fait comme tu a dit:

QLabel *label=new QLabel("&name:",this );//on donne l'image au label
label->setPixmap(QPixmap("c:/mesimages/image016.png"));
label->show();
QObject::connect(label, SIGNAL(clicked()), qApp, SLOT(quit()));

mais il n'affiche pas une image (mon image016.png se trouve sous mesimages sous c: ) est ce la methode d'accée à cette image est juste?
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
4 mars 2008 à 16:48
Il faut le chemin d'accès complet et correct !

Sur mon PC c'est du genre : C:\Mes Documents\Mes Images\image016.png

Jean-François
0
cs_ribh Messages postés 7 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 4 mars 2008
4 mars 2008 à 17:07
stp Jean-François voici mon simple code est ce que tu peut lui tester chez toi parce que j'ai corriger le chemin d'accés mais rien ne s'affiche:

//mafenetre.cpp//
#include "mafenetre.h"
#include <qpushbutton.h>
#include <qapplication.h>
#include <qlabel.h>
#include <qwidget.h>

int main( int argc, char ** argv )
{
QApplication a( argc, argv );
mafenetre w;
w.show();
return a.exec();
}


mafenetre::mafenetre()
{
setGeometry(400,400,800,900);
QLabel *label=new QLabel("&name:",this );//on donne l'image au label
label->setPixmap(QPixmap("Desktop/mesimages/image016.png"));
label->show();
QObject::connect(label, SIGNAL(clicked()), qApp, SLOT(quit()));

QLabel *la;
la=new QLabel("outil d'automatisation de test",this);
la->setGeometry(300,50,300,100);

QPushButton * quit=new QPushButton("quit",this);
quit->setGeometry(700,800,90,60);
connect(quit, SIGNAL(clicked()),qApp, SLOT(quit()) );
}

//mafenetre.h//
#include <qapplication.h>
#include <qwidget.h>

class mafenetre : public QWidget
{
Q_OBJECT
public:
mafenetre();
};
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
4 mars 2008 à 18:06
Je ne peux pas tester ce genre de code sur mon PC car je n'ai pas du tout l'environnement nécessaire mais ça n'a pas l'air d'être un chemin d'accès correct :

label->setPixmap(QPixmap("Desktop/mesimages/image016.png"));

D'après ce que je lis en cherchant QPixmap sur Google, avec cette ligne il cherche à partir du répertoire d'exécution ! Desktop n'est pas vraiment un répertoire sous Windows. Il faut essayer un chemin du genre :

label->setPixmap(QPixmap("C:/Mes Documents/Mes Images/image016.png"));

Il faut bien vérifier l'emplacement de cette image avec l'explorateur de fichiers et reproduire le chemin dans cette instruction ! A la limite, copier l'image directement sous C: (et donc mettre "C:/image016.png") le temps de tester sa visualisation sans se soucier du chemin !!!

Jean-François
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
4 mars 2008 à 18:11
J'ai pas fait attention au fait que ça se passe sous Linux !!!


Donc les chemins d'accès sont à adapter en conséquence.
Jean-François
0
Rejoignez-nous