QT连接没有匹配的功能来调用

问题描述 投票:1回答:1

嘿伙计们,我知道这个问题已经有了一些线索,但我认为我没有犯下其他导致问题的错误。所以这是我的代码:

#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();

};

和环境

class Enviroment : public QObject
{
    Q_OBJECT

public:

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

//stuff...

signals:
    void enviromentChanged();

我已经尝试在一个单独的类中进行连接,我尝试使用旧的连接语法(SIGNAL / SLOT(函数))并尝试使用>> all << my classes继承自QObject,但它显示了相同的错误。此外,它说的是函数需要3个参数,但得到4.并且似乎指向connect(... renderField)。我听说过在MainWindow类中完成所有这些操作的解决方案,但这对我来说不是一个选项。

c++ function qt connect qobject
1个回答
0
投票

您必须传递实例指针:

connect(&Enviroment::instance(), &Enviroment::enviromentChanged,
        this, &consoleRender::renderField);
© www.soinside.com 2019 - 2024. All rights reserved.