QT连接没有匹配的函数来调用

Posted

技术标签:

【中文标题】QT连接没有匹配的函数来调用【英文标题】:QT connect no matching function to call to 【发布时间】:2018-09-05 21:00:51 【问题描述】:

大家好,我知道这个问题已经有一些线索,但我认为我没有犯其他人犯的导致问题的错误。所以这是我的代码:

#include "consolerender.h"

consoleRender::consoleRender(QObject *parent) :
    QObject(parent) 
    connect(Enviroment::instance, &Enviroment::enviromentChanged,
            this, &consoleRender::renderField);

还有标题:

class consoleRender : public QObject

    Q_OBJECT

public:
    explicit consoleRender(QObject *parent = 0);

public slots:
    void renderField();

;

还有环境.h

class Enviroment : public QObject

    Q_OBJECT

public:

    static Enviroment& instance();
    virtual ~Enviroment();

//stuff...

signals:
    void enviromentChanged();

我已经尝试在一个单独的类中进行连接,我尝试使用旧的连接语法 (SIGNAL/SLOT(function)) 并尝试使用 >>all

【问题讨论】:

天哪,你是我的英雄!非常感谢! 【参考方案1】:

你必须传递实例指针:

connect(&Enviroment::instance(), &Enviroment::enviromentChanged,
        this, &consoleRender::renderField);

【讨论】:

以上是关于QT连接没有匹配的函数来调用的主要内容,如果未能解决你的问题,请参考以下文章

Qt 插槽,调用没有匹配函数

错误:没有匹配函数来调用...返回语句

Qt - 没有匹配函数调用‘QVariant::QVariant(MyClass&)’

Qt小部件析构函数通过连接信号间接调用小部件方法,并崩溃

QT中的信号与事件,多线程

未连接的 Qt 插槽被调用