c++ - QT4没有这个信号

标签 c++ qt qt4 signals-slots

我有一个信号和一个槽,它们应该可以很好地组合在一起。

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/

相关文章:

c++ - Qt 秒到 DD HH SS

c++ - 在 Qt 项目中使用 sem_t

c++ - 如何使用 QRegExp 解析 pacmd 列表输出并查找接收器索引和名称?

c++ - C++中的netcat命令

c++ - 如何在 Visual Studio 2012 Express 中更改属性页中的 "Inherited Values"

c++ - cpp迭代器继承

c++ - 如何将子项添加到 QGraphicsItem

c++ - 从 QT 中的字符串显示(呈现)HTML

python - 异常TypeError: 'argument list must be a tuple'

C++,2D std::vector,我是否需要显式保留并推回空 vector ?