La classe sous QT creator

Résolu/Fermé
afrozen Messages postés 18 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 19 janvier 2011 - 31 oct. 2010 à 21:15
afrozen Messages postés 18 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 19 janvier 2011 - 8 nov. 2010 à 20:39
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 ?


A voir également:

2 réponses

loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
31 oct. 2010 à 22:32
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
afrozen Messages postés 18 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 19 janvier 2011
8 nov. 2010 à 20:39
Bonsoir,

Merci infiniment.

Cordialement
0