Search code examples
c++qtqt4signals-slots

No such signal in QT4


I have a signal and a slot that should fit together quite nicely.

class MemberVisitor: public QObject
{
    Q_OBJECT
signals:
    void processMember(Member* member, bool &breakLoop);
public:
    void processList(QList<Member*>* list);
};

along with:

class MemberFinder: public QObject
{
    Q_OBJECT
public slots:
    void processMember(Member* member, bool &breakLoop);
public:
    Member* member();
    MemberFinder(QString memID): m_member(0), m_memID(memID) {};
private:
    Member* m_member;
    QString m_memID;
};

Not exactly complex, right? But I am definitely missing something, because QT keeps giving me the error: "Object::connect: No such signal MemberVisitor::processMember() in OperationsOnMembers.cpp:29"

Here's the code that should be hooking them up:

QObject::connect(visitor, SIGNAL(processMember()), finder, SLOT(processMember()));

I've also tried all the reasonable alternatives, like calling the function on finder. But I keep getting the same problem. What am I missing?


Solution

  • The call to connect() should be:

    QObject::connect(visitor, SIGNAL(processMember(Member*, bool&)), 
        finder, SLOT(processMember(Member*, bool&)));
    

    ..provided that visitor and finder are pointers.