定制C++;QJSEngine的类型:成员函数返回值始终为QVariant 我有一个C++类,在Qt 5中,基于QJSGEngress(因为Qt脚本似乎被弃用)而暴露给JavaScript。
我的QObject派生类A和B有Q_对象宏,也使用Q_DECLARE_元类型宏 我已经为我的类公开了工厂函数,这些函数允许我从javascript内部创建新实例。以下各项均适用:定制C++;QJSEngine的类型:成员函数返回值始终为QVariant 我有一个C++类,在Qt 5中,基于QJSGEngress(因为Qt脚本似乎被弃用)而暴露给JavaScript。,javascript,qt5,qjsengine,Javascript,Qt5,Qjsengine,我的QObject派生类A和B有Q_对象宏,也使用Q_DECLARE_元类型宏 我已经为我的类公开了工厂函数,这些函数允许我从javascript内部创建新实例。以下各项均适用: a = namespace.createNewA(); // QJSEngine reports a type A object b = namespace.createNewB(); // QJSEngine reports a type B object b.SetParent(a); // SetParent i
a = namespace.createNewA(); // QJSEngine reports a type A object
b = namespace.createNewB(); // QJSEngine reports a type B object
b.SetParent(a); // SetParent is a slot of B taking a const A& parameter, gets called correctly
// But now.
b.GetParent(); // Reports QVariant(A), even though this is a slot: A GetParent() const
我有没有办法确保javascript中的GetParent被识别为实际的类型a对象,而不是QVariant 我用我的原始代码解决了问题:
这需要对我的代码设置进行一些更改,因为返回的值过去是临时值,但我可以接受。有没有机会与大家分享如何使用QJSEngine创建“可更新”对象?我现在正在努力解决这个问题。我找到的所有文档都描述了如何使用旧引擎