假设我有简单的 QML 插件。我定期检查对象的某些状态,在这一步中,我想从 c++ 中查询 QML 对象,方式如下:
插件代码 (c++)
class MyItem : public QQuickItem
{
public:
MyItem(QQuickItem *parent = 0) :
QQuickItem(parent)
{}
void timerFunction(SomeObject * obj)
{
// here I need to call QML function to validate my object, may be in this way:
callJSFunction("myFunction",obj); // that's what I need
if(obj->approved) doSomething();
}
}
QML 文件:
MyItem {
id: myItem
property bool someProperty
function myFunction(obj)
{
obj.approved = someProperty;
}
}
我不能仅仅因为对 JS 的调用必须以同步方式使用信号。我的意思是我需要的是:
- 在 C++ 代码计时器调用函数 timerFunction() 与对象验证
- 在 timerFunction() 中我调用 JS 函数并返回结果
- 之后我继续执行 timerFunction()
所以我的问题 - 有没有办法从 C++ 插件对象调用 JS 函数?