我有一个信号和一个槽,它们应该可以很好地组合在一起。
class MemberVisitor: public QObject
{
Q_OBJECT
signals:
void processMember(Member* member, bool &breakLoop);
public:
void processList(QList<Member*>* list);
};
连同:
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;
};
并不复杂,对吧?但我肯定遗漏了一些东西,因为 QT 一直给我错误:“Object::connect:OperationsOnMembers.cpp:29 中没有这样的信号 MemberVisitor::processMember()”
下面是连接它们的代码:
QObject::connect(visitor, SIGNAL(processMember()), finder, SLOT(processMember()));
我还尝试了所有合理的替代方案,比如在 finder 上调用函数。但我一直遇到同样的问题。我错过了什么?
最佳答案
对 connect()
的调用应该是:
QObject::connect(visitor, SIGNAL(processMember(Member*, bool&)),
finder, SLOT(processMember(Member*, bool&)));
..前提是 visitor 和 finder 是指针。
关于c++ - QT4没有这个信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3604639/