qt元对象系统之 Q_OBJECT宏

宏展开是这样 

#define Q_OBJECT \
public: \
    QT_WARNING_PUSH \
    Q_OBJECT_NO_OVERRIDE_WARNING \
    static const QMetaObject staticMetaObject; \
    virtual const QMetaObject *metaObject() const; \
    virtual void *qt_metacast(const char *); \
    virtual int qt_metacall(QMetaObject::Call, int, void **); \
    QT_TR_FUNCTIONS \
private: \
    Q_OBJECT_NO_ATTRIBUTES_WARNING \
    Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); \
    QT_WARNING_POP \
    struct QPrivateSignal {}; \
    QT_ANNOTATE_CLASS(qt_qobject, "")

然后通过moc工具生成以下变量和函数的定义

静态对象     staticMetaObject

静态方法     qt_static_metacall

成员虚函数 metaObject, qt_meatacast, qt_metacall

 

上一篇:2020-12-24


下一篇:python-在日志中记录异常