列印QObject 對應的QMetaObject中儲存的方法資訊

MarsCactus發表於2024-09-18
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();
}

相關文章