我想在程序中使用信号和插槽,为此我被告知Ineed将Q_OBJECT添加如下。
我有一节课:
class A
{
Q_OBJECT
public:
A();
};
这会产生一个错误,上面写着'Q_OBJECT没有命名类型'。如果我而不是添加#include它会给出错误'未定义的引用到v'的A'
那么这样做的正确方法是什么?
答案 0 :(得分:4)
Q_OBJECT
宏适用于QObject
(或其他子类)的子类。如果您希望班级使用信号和插槽,也需要它。
class A
: public QObject
{
Q_OBJECT
public:
A(QObject *parent = 0);
};
Q_OBJECT宏必须出现在类的私有部分中 声明自己的信号和插槽或使用其他信号的定义 Qt的元对象系统提供的服务 ...
注意:强>
该宏要求该类是QObject的子类。 ...