打印QObject 对应的QMetaObject中保存的方法信息

QString methodType(QMetaMethod::MethodType mety)
{
    switch (mety)
    {
    case QMetaMethod::Signal:
        return QString("QMetaMethod::Signal");
    case QMetaMethod::Slot:
        return QString("QMetaMethod::Slot");
    case QMetaMethod::Constructor:
        return QString("QMetaMethod::Constructor");
    default:
        return QString("Unkonwn Type");
    }
}
int main(int argc, char* argv[])
{
    QCoreApplication a(argc, argv);

    QObject obj;
    auto mobj = obj.metaObject();
    for (int i = 0; i < mobj->methodCount(); i++)
    {
        QMetaMethod method = mobj->method(i);
        qDebug() << methodType( method.methodType()) << "\t" << QMetaType(method.returnType()).name() << method.methodSignature().data();
    }



    return a.exec();
}

或者


int main(int argc, char* argv[])
{
    QCoreApplication a(argc, argv);
    for(int i = 0; i < QObject::staticMetaObject.methodCount();i++)
    {
        QMetaMethod method = QObject::staticMetaObject.method(i);
        qDebug() << methodType( method.methodType()) << "\t" << QMetaType(method.returnType()).name() << method.methodSignature().data();
    }

    return a.exec();
}


posted @ 2024-09-18 01:51  MarsCactus  阅读(3)  评论(0编辑  收藏  举报