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

QT connect no matching function to call to

本文关键字:功能 调用 连接 QT      更新时间:2023-10-16

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

#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(function((,我尝试使用从 QObject 继承的>>all<<我的类,但它显示了相同的错误。它还说该函数需要 3 个参数但得到 4 个参数。 它似乎指向连接(...渲染字段(。我听说过一种解决方案,可以在 MainWindow 类中完成所有这些操作,但这对我来说不是一个选择。

您必须传递实例指针:

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