Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想在我的程序中使用信号和插槽,为此我被告知需要添加 Q_OBJECT,如下所示。
好吧,我有一堂课:
class A { Q_OBJECT public: A(); };
这会给出一个错误,上面写着“Q_OBJECT 没有命名类型”。如果我添加 #include 它会给出错误“未定义的对 A 的 vtable 的引用”
那么这样做的正确方法是什么?
该Q_OBJECT宏适用于 a 的子类QObject(或其他子类)。如果您希望您的班级使用信号和插槽,它也是必需的。
Q_OBJECT
QObject
class A : public QObject { Q_OBJECT public: A(QObject *parent = 0); };
Q_OBJECT 宏必须出现在声明自己的信号和槽或使用 Qt 元对象系统提供的其他服务的类定义的私有部分中。 ... 注意: 这个宏要求类是 QObject 的子类。...