错误:未知方法参数类型:QString&
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:未知方法参数类型:QString&相关的知识,希望对你有一定的参考价值。
在C ++方面,我有这个方法:
class MyClass : public QObject
{
Q_OBJECT
Q_INVOKABLE QVariant getFamily_byParentName(QString &parentName) const;
// ...
}
我在QML上调用C ++方法:
onButtonClicked: {
myClass.getFamily_byParentName(items3D.model[0]) // items3D.model[0] is a string
}
上面的代码在QML行myClass.getFamily_byParentName(items3D.model[0])
上抛出了这个错误:
错误:未知方法参数类型:QString&
解
通过将QString
参数声明为const
来解决上述错误:
Q_INVOKABLE QVariant getFamily_byParentName(const QString &parentName) const;
问题是:为什么?
答案
QML引擎通过复制值来转换适当的数据类型。
在你的情况下,QString &
是对无法复制的QString
的引用,而是可以复制const QString &
。出于这个原因,你不能将QObject
作为参数,因为它不可复制,而你必须使用QObject *
,因为指针是可复制的。
它与Q_SIGNALs的原理相同。
以上是关于错误:未知方法参数类型:QString&的主要内容,如果未能解决你的问题,请参考以下文章
Parceable 错误:在偏移量 1112 处解组未知类型代码 7274595
获取错误“未知”类型的参数不能分配给“错误”类型的参数 |空值'
自定义输入类型的 Apollo 数组作为 Mutation 参数抛出“__typename”:未知字段错误
AWS Amplify 突变调用返回“UnknownArgument 类型的验证错误:未知字段参数”
Angular Apollo:错误:GraphQL 错误:“Mutation”类型的字段“AuthLogin”上的未知参数“用户名”