首页 > 解决方案 > 如何对带有信号和槽的类强制使用 Q_OBJECT 宏

问题描述

我有一堆没有定义Q_OBJECT宏和派生类的基类:

class Base : public QObject
{
    Q_OBJECT
public:
    // signals and slots
};

class Derived : public Base
{
    // notice no `Q_OBJECT` macro
public:
    // signals and slots
};

这很好用,但根据Qt 文档

Q_OBJECT 宏必须出现在声明自己的信号和槽或使用 Qt 元对象系统提供的其他服务的类定义的私有部分中。

Q_OBJECT当使用 Qt 元系统的类没有宏时,有什么方法可以停止编译?

PS:我正在使用 MSVC 编译器

标签: c++qtvisual-c++

解决方案


推荐阅读