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