使用如下方法调用某对象的方法时,容易出现No such method
QMetaObject::invokeMethod(m_obj,ch,Q_ARG(QVariant, m_value));
产生的原因有两个:
1、被调用的方法应增加Q_INVOKABLE声明。注意,要调用的类型必须是信号、槽,以及Qt元对象系统能识别的类型, 如果不是信号和槽,可以使用qRegisterMetaType()来注册数据类型。此外,使用Q_INVOKABLE来声明函数,也可以正确调用。
2、被调用的方法的参数类型必须严格一致。
附
更进一步了解QMetaObject::invokeMethod,请参考https://blog.youkuaiyun.com/luoyayun361/article/details/97915133
QMetaObject::invokeMethod: No such method 解决方法
最新推荐文章于 2025-04-03 22:23:12 发布