La classe sous QT creator

Résolu
afrozen Messages postés 23 Statut Membre -  
afrozen Messages postés 23 Statut Membre -
Bonjour,

Je promgramme sous QT creator sous ubuntu
J'essaye de créer mon propres slot de tel sorte qu'on changeant la valeur du slider la dimension de ma fenetre change. voici ma classe :

#include "creationpropreslot.h"

void CreationpropreSLOT::changerLargeur(int largeur)
{
setFixedSize(largeur, 100);
}

CreationpropreSLOT::CreationpropreSLOT()
{

m_slider = new QSlider(Qt::Horizontal, this);
m_slider->setGeometry(50, 80, 100, 40);

QObject::connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(changerLargeur(int)));
}

La compilation passe sans problème or lors de l'execution j'ai le message suivant :

"Object::connect: No such slot QWidget::changerLargeur(int) in creationpropreslot.cpp:16"

or moi j'ai bien mis la fonction "changerLargeur" au début de mon fichier creationpropreslot.cpp

SVP sauriez vous comment je dois faire ?

2 réponses

  1. loupius Messages postés 789 Statut Membre 148
     
    Il ne suffit pas que la fonction existe.
    Il faut qu'elle soit déclarée comme étant un 'slot' et que la macro 'Q_OBJECT' soit déclarée dans la classe.
    Exemple:
    class UneClasse : public QWidget
    {
      Q_OBJECT
      ...
      public slots:
        void changerLargeur() { ...; }
      ...
    };
    Bonnecontinuation.
    0
  2. afrozen Messages postés 23 Statut Membre
     
    Bonsoir,

    Merci infiniment.

    Cordialement
    0