gpt4 book ai didi

javascript - Qt 5.0 : Exposing C++ methods to Java Script

转载 作者:数据小太阳 更新时间:2023-10-29 05:10:37 26 4
gpt4 key购买 nike

我尝试将对象作为全局属性公开给具有以下方法的 Java Script:

Q_INVOKABLE MyObject* createMyObject();

MyObject 派生自 QObject。

当我在 Java Script 中调用这个方法时,它返回一个类型的对象:

QVariant(MyObject*)

我想知道是否可以自动将它转换为 QJSValue 以便我可以在脚本中进一步使用它?

最佳答案

似乎 Java Script 使用 QVariant 作为任何“未知”类型的不透明包装器。该值可以轻松传递,但不能使用其属性,也不能调用其方法。要在脚本中使用,应将其转换为 QJSValue。我发现的唯一方法是像这样声明辅助函数:

Q_INVOKABLE QJSValue convert(QVariant var)
{
return _engine.newQObject(var.value<QObject*>());
}

然后可以将 QVariant 转换为 QJSValue:

var obj = convert(createMyObject());

obj 将是类型

MyObject

所以现在它可以在脚本中使用了。

关于javascript - Qt 5.0 : Exposing C++ methods to Java Script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14396340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com