C++ 信号和插槽有助于QT

C++ 信号和插槽有助于QT,c++,qt,signals,C++,Qt,Signals,我有一个Ui类,它有一个函数,我想在每次我从类发出信号时调用这个函数,比如说test。在ui函数中,我需要连接我的信号和插槽,但我正在尝试QT文档中的代码,没有运气 信号声明 signals: void paint(int x, int y, int id); 信号发射 emit paint(x, y, id) 连接(m_test已成为类对象) 获取此错误 错误:C2664:“QMetaObject::Connection QObject::connect(const QObject*,c

我有一个Ui类,它有一个函数,我想在每次我从类发出信号时调用这个函数,比如说test。在ui函数中,我需要连接我的信号和插槽,但我正在尝试QT文档中的代码,没有运气

信号声明

signals:

void paint(int x, int y, int id);
信号发射

emit paint(x, y, id)
连接(
m_test
已成为类对象)

获取此错误

错误:C2664:“QMetaObject::Connection QObject::connect(const QObject*,const char*,const QObject*,const char*,Qt::ConnectionType)”:无法将参数1从“uiFunction*”转换为“const QObject*”

但我遵循了这个QT文档示例(counter是类)


有什么想法吗?

您需要您的Ui类从QObject继承,然后在类声明之后添加QObject宏。e、 g

class Ui : public QObject
{
    QOBJECT

signals:
    void paint(int x, int y, int id);

private slots:
    void UiFunction(int x, int y, int id);
};

您需要您的Ui类从QObject继承,然后在类声明之后添加QObject宏。e、 g

class Ui : public QObject
{
    QOBJECT

signals:
    void paint(int x, int y, int id);

private slots:
    void UiFunction(int x, int y, int id);
};

这是说你的
m_测试
类型不是从
QObject
派生的。好吧,但示例中的一个也不是从QT docs
一个小示例
类计数器:public QObject
派生的。。。再试一次。别忘了Q_对象宏它是说你的
m_测试
类型不是从
QObject
派生的。好的,但示例中的一个也不是从QT docs
一个小示例
类计数器:public QObject
。。。再试一次。别忘了Q_对象宏
class Ui : public QObject
{
    QOBJECT

signals:
    void paint(int x, int y, int id);

private slots:
    void UiFunction(int x, int y, int id);
};