【发布时间】:2013-06-15 05:55:43
【问题描述】:
我创建了一个继承自 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?如果是这样,您在尝试构建项目之前是否运行 qmake?
-
不,testObject 是 Qt Creator 创建的类。我尝试运行 qmake 并清理/重建我的项目,但没有结果
-
你在哪里调用 connect 它在 QObject 类中?无论如何尝试使用完全限定名称:QObject::connect(...
-
在
void testFunction()内,从表单的构造函数中调用。 QObject::connect 给出同样的错误
标签: qt qt-signals