QObject错误与宏并包含

Kat*_*Kat 3 c++ qt qobject

我想在程序中使用信号和插槽,为此,我被告知Ineed如下添加Q_OBJECT。

好吧,我有一堂课:

class A
{
    Q_OBJECT
public:
    A();
};
Run Code Online (Sandbox Code Playgroud)

这给出一个错误,指出“ Q_OBJECT没有命名类型”。如果我不加#include它给出错误“对A的vtable的未定义引用”

那么正确的方法是什么呢?

jdi*_*jdi 5

Q_OBJECT宏用于QObject(或其他子类)的子类。如果您希望您的班级使用信号和插槽,这也是必需的。

class A 
    : public QObject
{
    Q_OBJECT

 public:
    A(QObject *parent = 0);
};
Run Code Online (Sandbox Code Playgroud)

Q_OBJECT

Q_OBJECT宏必须出现在类定义的专用部分中,该类声明其自身的信号和插槽或使用Qt的元对象系统提供的其他服务。
...
注意:
此宏要求该类是QObject的子类。...