Bonjour à tous le forum,
Le petit programme que j'écris est sensé augmenter la largeur d'une fenêtre à l'aide d'un curseur. Le code que j'écris ne fonctionne pas. Après 2 jours de bidouillage du code, je n'arrive pas à la faire fonctionner, quelqu'un peut-il m'aider?
voici les fichiers:
Le header "MaFenetre.h":
Le fichier "MaFenetre.cpp":Code:#ifndef MAFENETRE_H #define MAFENETRE_H #include <QApplication> #include <QWidget> #include <QPushButton> #include <QLCDNumber> #include <QSlider> #include <QObject> class MaFenetre : public QWidget { // Nom de la macro tout en majuscule // Prépare le compilateur à accepter un nouveau mot-clé (slot) Q_OBJECT public: MaFenetre(); // Nouveau mot-clé (slot) public slots: void changerLargeur(int largeur); private: QSlider *m_slider; }; #endif // MAFENETRE_H
Et le fichier "main.cpp":Code:#include "mafenetre.h" #include <QObject> void MaFenetre::changerLargeur(int largeur) { setFixedSize(largeur, 100); } MaFenetre::MaFenetre() : QWidget() { setFixedSize(200, 100); // Construction du bouton m_slider = new QSlider(Qt::Horizontal, this); m_slider->setRange(200, 900); m_slider->setGeometry(10, 60, 150, 20); // Connexion, on affiche la valeur du curseur // par rapport au slider QObject::connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(changerLargeur(int))); }
Le message d'erreur:Code:#include "mainwindow.h" #include "MaFenetre.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MaFenetre fenetre; fenetre.show(); return a.exec(); }
L'erreur me pointe cette ligne:Code:Démarrage de F:\Projet_Qt_creator\build-Creer_Ses_Propres_Signaux_Et_Slots-Desktop_Qt_5_3_0_MinGW_32bit-Debug\debug\Creer_Ses_Propres_Signaux_Et_Slots.exe... QObject::connect: No such slot QWidget::changerLargeur(int) in ... \Creer_Ses_Propres_Signaux_Et_Slots\mafenetre.cpp:23 F:\Projet_Qt_creator\build-Creer_Ses_Propres_Signaux_Et_Slots-Desktop_Qt_5_3_0_MinGW_32bit-Debug\debug\Creer_Ses_Propres_Signaux_Et_Slots.exe s'est terminé avec le code 0
"QObject::connect(m_slider , SIGNAL(valueChanged(int)), this, SLOT(changerLargeur(int)));"
Merci pour vos réponses a venir.
Denis
-----