起因:在一个纯C++类中想加入一个槽函数,于是继承QObject类,写上了Q_OBJECT声明
C++
class A : QObject
{
Q_OBJECT
public:
A();
private slots:
void onRefres();
};
但编译报错,Object::connect: No such slot,难道此类还没有成为QObject?
解决方法:新建类,基类选择QObject,自动生成的类如下
头文件
C++
#ifndef AAAAA_H
#define AAAAA_H
#include <QObject>
class aaaaa : public QObject
{
Q_OBJECT
public:
explicit aaaaa(QObject *parent = nullptr);
signals:
public slots:
};
#endif // AAAAA_H
源文件
C++
#include "aaaaa.h"
aaaaa::aaaaa(QObject *parent) : QObject(parent)
{
}
那么,照葫芦画瓢,想要使用信号槽,你的类像它一样就OK了
发表评论