Qt 使用 QMetaMethod 获取方法返回值类型 - 示例代码
在 Qt 中,可以使用 QMetaMethod 类来获取一个类的方法信息,包括返回值类型。\n\n首先,我们需要获取方法的元对象 (QMetaObject),可以通过类的静态函数 metaObject() 来获取。然后使用 QMetaObject::indexOfMethod() 函数来获取方法在元对象中的索引。最后,通过 QMetaObject::method() 函数获取方法的元方法 (QMetaMethod),可以使用 QMetaMethod::returnType() 函数来获取返回值类型。\n\n以下是一个示例代码:\n\ncpp\n#include <QCoreApplication>\n#include <QDebug>\n#include <QMetaMethod>\n\nclass MyClass : public QObject\n{\n Q_OBJECT\npublic:\n explicit MyClass(QObject *parent = nullptr) : QObject(parent) {}\n\n int myMethod(int arg1, int arg2)\n {\n return arg1 + arg2;\n }\n};\n\nint main(int argc, char *argv[])\n{\n QCoreApplication a(argc, argv);\n\n // 创建对象\n MyClass obj;\n\n // 获取元对象\n const QMetaObject *metaObject = obj.metaObject();\n\n // 获取方法索引\n int methodIndex = metaObject->indexOfMethod("myMethod(int,int)");\n\n // 判断方法是否存在\n if (methodIndex != -1)\n {\n // 获取方法元方法\n QMetaMethod method = metaObject->method(methodIndex);\n\n // 获取返回值类型\n const char *returnType = method.returnType();\n\n // 输出返回值类型\n qDebug() << "Return type:" << returnType;\n }\n\n return a.exec();\n}\n\n\n运行上述代码,会输出返回值类型 int。\n\n注意,QMetaMethod::returnType() 返回的是一个 C 风格的字符串,如果需要将其转换为 QString,可以使用 QString::fromUtf8() 函数。
原文地址: https://www.cveoy.top/t/topic/p7Is 著作权归作者所有。请勿转载和采集!