2

では、がマクロQtであることがわかっています。この文脈でマクロとはどういう意味ですか? 特に、マクロという用語にはいくつかの異なる定義があることに気付きました。Q_OBJECT

ありがとう。

4

1 に答える 1

8

マクロQ_OBJECTは、それが実際には C++ マクロであることを意味します。で定義されてsrc/corelib/kernel/qobjectdefs.hおり、定義は読み取ります

#define Q_OBJECT \
public: \
    Q_OBJECT_CHECK \
    static const QMetaObject staticMetaObject; \
    Q_OBJECT_GETSTATICMETAOBJECT \
    virtual const QMetaObject *metaObject() const; \
    virtual void *qt_metacast(const char *); \
    QT_TR_FUNCTIONS \
    virtual int qt_metacall(QMetaObject::Call, int, void **); \
private:

Q_OBJECT_CHECKQ_OBJECTマクロがクラスで使用されているかどうかを確認するために使用される別のマクロです。他の式は、シグナル/スロット メカニズムと変換のためのメタオブジェクトとユーティリティ メソッドを定義します。

于 2012-09-03T15:52:28.677 に答える