Débutant avec Qt. besoin d'aide
Bonjour à tous,
je débute avec Qt et donc pour l'instant je teste des exemples.
j'ai trouvé la définition de la classe Counter ci après :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include <QObject>
class Counter : public QObject
{
Q_OBJECT
public:
Counter() { m_value = 0; }
int value() const { return m_value; }
public slots:
void setValue(int value);
signals:
void valueChanged(int newValue);
private:
int m_value;
}; |
Je précise que j'utilise le plugin eclipse Qt et Qt 4.4.3.
J'ai donc déclaré cette en deux partie, un fichier d'en-tête Counter.h,
==============>
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
#ifndef COUNTER_H_
#define COUNTER_H_
#include <QObject>
class Counter {
Q_OBJECT
public:
Counter();
int value() const;
public slots:
void setValue(int value);
signals:
void valueChanged(int value);
private:
int m_value;
};
#endif /* COUNTER_H_ */ |
et un fichier .cpp
======================>
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include "Counter.h"
Counter::Counter2() {
}
int Counter::value() const
{
return m_value;
}
void Counter::setValue(int value) {
if (m_value != value) {
m_value = value;
emit valueChanged(value);
}
}
void Counter::valueChanged(int value)
{
///
} |
Alors, le problème, c'est que j'ai l'erreur suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
mingw32-make debug
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Users/laurykarin/Documents/eclipse-cpp-ganymede-SR1-win32/workspace/Test'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\4.4.3\include\QtCore" -I"c:\Qt\4.4.3\include\QtCore" -I"c:\Qt\4.4.3\include\QtGui" -I"c:\Qt\4.4.3\include\QtGui" -I"c:\Qt\4.4.3\include" -I"c:\Qt\4.4.3\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\4.4.3\mkspecs\win32-g++" -o debug\main.o main.cpp
main.cpp: In function `int qMain(int, char**)':
main.cpp:21: error: no matching function for call to `QObject::connect(Counter2*, const char[19], Counter2*, const char[15])'
c:/Qt/4.4.3/include/QtCore/../../src/corelib/kernel/qobject.h:197: note: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
c:/Qt/4.4.3/include/QtCore/../../src/corelib/kernel/qobject.h:303: note: bool QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make[1]: Leaving directory `C:/Users/laurykarin/Documents/eclipse-cpp-ganymede-SR1-win32/workspace/Test'
mingw32-make: *** [debug] Error 2 |
le code de la fonction principale (main) est le suivant qui se trouve dans un fichier "test.cpp" est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include "test.h"
#include "Counter.h"
#include <QApplication>
#include <QObject>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Counter a, b;
QObject::connect(&a, SIGNAL(valueChanged(int)), &b, SLOT(setValue(int)));
a.setValue(12);
b.setValue(45);
app.exec();
} |
Merci pour votre aide.
PS : l'exemple est à la page suivante : http://qt.developpez.com/doc/4.4/signalsandslots/