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();
}