J'ai créé une classe simple héritée de QObject et créé un signal, comme celui-ci:Impossible de se connecter le signal de QObject
testobject.h:
#ifndef TESTOBJECT_H
#define TESTOBJECT_H
#include <QObject>
class testObject : public QObject
{
Q_OBJECT
public:
explicit testObject(QObject *parent = 0);
signals:
somethingChanged();
public slots:
};
#endif // TESTOBJECT_H
testobject.cpp:
#include "testobject.h"
testObject::testObject(QObject *parent) :
QObject(parent)
{
}
Et puis essayé de faire un QEventLoop qui devrait s'arrêter lorsque le signal est émis:
testObject *foo = new testObject;
QEventLoop loop;
connect(foo, SIGNAL(somethingChanged()), loop, SLOT(quit()));
loop.exec();
Mais compilateur se plaint comme ceci:
error: no matching function for call to 'TestObjectHere::connect(objectTest&, const char*, QEventLoop&, const char*)'
Comment dois-je résoudre ce problème?
Avez-vous renommé la classe _testObject_? Si oui avez-vous _run qmake_ avant d'essayer de construire votre projet? – Zlatomir
Non, _testObject_ est la classe créée par Qt Creator. J'ai essayé d'exécuter qmake et de nettoyer/reconstruire mon projet, mais sans résultat –
Où appelez-vous le _connect_ c'est dans une classe QObject? Quoi qu'il en soit, essayez avec le nom complet: _QObject :: connect (..._ – Zlatomir