QT连接没有匹配的函数可以调用
QT connect no matching function to call to
大家好,我知道这个问题已经有一些话题了,但我想我犯了 none 其他人犯过的导致问题的错误。所以这是我的代码:
#include "consolerender.h"
consoleRender::consoleRender(QObject *parent) :
QObject(parent) {
connect(Enviroment::instance, &Enviroment::enviromentChanged,
this, &consoleRender::renderField);
}
和header:
class consoleRender : public QObject
{
Q_OBJECT
public:
explicit consoleRender(QObject *parent = 0);
public slots:
void renderField();
};
还有 Enviroment.h
class Enviroment : public QObject
{
Q_OBJECT
public:
static Enviroment& instance();
virtual ~Enviroment();
//stuff...
signals:
void enviromentChanged();
我已经尝试在单独的 class 中进行连接,我尝试使用旧的连接语法 (SIGNAL/SLOT(function)) 并尝试使用 >>all<< 我的 classes 继承自 QObject 但它显示相同的错误。它还说函数需要 3 个参数但得到 4 个参数,并且似乎指向 connect(...renderField)。我听说有一种解决方案可以在 MainWindow class 中完成所有这些操作,但这对我来说不是一个选择。
您必须传递实例指针:
connect(&Enviroment::instance(), &Enviroment::enviromentChanged,
this, &consoleRender::renderField);
大家好,我知道这个问题已经有一些话题了,但我想我犯了 none 其他人犯过的导致问题的错误。所以这是我的代码:
#include "consolerender.h"
consoleRender::consoleRender(QObject *parent) :
QObject(parent) {
connect(Enviroment::instance, &Enviroment::enviromentChanged,
this, &consoleRender::renderField);
}
和header:
class consoleRender : public QObject
{
Q_OBJECT
public:
explicit consoleRender(QObject *parent = 0);
public slots:
void renderField();
};
还有 Enviroment.h
class Enviroment : public QObject
{
Q_OBJECT
public:
static Enviroment& instance();
virtual ~Enviroment();
//stuff...
signals:
void enviromentChanged();
我已经尝试在单独的 class 中进行连接,我尝试使用旧的连接语法 (SIGNAL/SLOT(function)) 并尝试使用 >>all<< 我的 classes 继承自 QObject 但它显示相同的错误。它还说函数需要 3 个参数但得到 4 个参数,并且似乎指向 connect(...renderField)。我听说有一种解决方案可以在 MainWindow class 中完成所有这些操作,但这对我来说不是一个选择。
您必须传递实例指针:
connect(&Enviroment::instance(), &Enviroment::enviromentChanged,
this, &consoleRender::renderField);