如何从C 调用非参数QML函数
How to call a non-parameterised QML function from C++
我试图在我的qml中调用函数:
function resetSomething() {
tempVar= undefined
}
我不确定如何为此功能编写InvokeMethod。我尝试使用类似的东西:
QQuickItem* qObj= findChild<QQuickItem>("temp");
if (qObj)
{
QVariant returnArg;
QMetaObject::invokeMethod(qObj, "resetSomething",Q_RETURN_ARG,QVariant,returnArg));
}
,但它给出了错误
找不到匹配函数(qvariant)找到。
您在错误消息qt的meta对象系统中可以看到的方法正在尝试查找方法重置( qvariant ),但是您的方法没有任何参数。我想这是因为错误 q_return_arg 宏用法。
似乎您可以像这样修复它:
QVariant returnArg;
QMetaObject::invokeMethod(qObj, "resetSomething", Qt::DirectConnection,
Q_RETURN_ARG(QVariant, returnArg));
我也建议您阅读官方QT文档,这很棒。
顺便说一句:来自Google的不错仓库,其中有很多C /JavaScript间断。您可以在那里找到很多有用的模式。
相关文章:
- 如何反转整数参数包
- 从C++实例化QML
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- QML 使用带有参数C++函数
- 无法将动态创建的对象数组从 qml 发送到 c++ 作为方法参数
- 使用 enum 参数将 C++ 对象信号连接到 QML 信号处理程序
- 当通过引用传递 QObject 时,C++信号的参数在 QML 中显示为"未定义"
- Qml:从文件加载组件时将参数作为 URL 的一部分传递
- 运行 QML 时出现"未知方法参数类型"错误
- 将QQMllistProperty从QML传递到C 作为参数
- 如何从C 调用非参数QML函数
- 如何用参数将信号从C++连接到QML函数
- 如何在 QML 中实例化C++组件 - WITH 参数化构造函数
- c++中的QML回调,参数为自定义类型
- 将Q_GADGET作为信号参数从c++传递到QML
- 参数是如何从Qml传递到C++的