Я создал простой класс, унаследованный от QObject и создал сигнал, как это:Невозможно подключить сигнал от 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)
{
}
А потом попытался сделать QEventLoop, что следует прекратить, когда излучается сигнал:
testObject *foo = new testObject;
QEventLoop loop;
connect(foo, SIGNAL(somethingChanged()), loop, SLOT(quit()));
loop.exec();
Но компилятор жалуется, как это:
error: no matching function for call to 'TestObjectHere::connect(objectTest&, const char*, QEventLoop&, const char*)'
Как мне это исправить?
Возможно, вы переименовали класс _testObject_? Если бы вы делали _run qmake_, прежде чем пытались создать свой проект? – Zlatomir
Нет, _testObject_ - это класс, созданный Qt Creator. Я попытался запустить qmake и очистить/восстановить мой проект, но без результатов –
Где вы называете _connect_ внутри класса QObject? В любом случае попробуйте с полным именем: _QObject :: connect (..._ – Zlatomir