QObject错误与宏和包括

时间:2012-11-24 17:18:27

标签: c++ qt qobject

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

我有一节课:

class A
{
    Q_OBJECT
public:
    A();
};

这会产生一个错误,上面写着'Q_OBJECT没有命名类型'。如果我而不是添加#include它会给出错误'未定义的引用到v'的A'

那么这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

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

class A 
    : public QObject
{
    Q_OBJECT

 public:
    A(QObject *parent = 0);
};

Q_OBJECT

  

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