QJSEngine に基づいて、Qt 5 で javascript に公開された一連の C++ クラスがあります (Qt スクリプトは廃止されたようです)。
私の QObject 派生クラス A と B には Q_OBJECT マクロがあり、Q_DECLARE_METATYPE マクロも使用します。
クラスのファクトリ関数を公開して、JavaScript 内から新しいインスタンスを作成できるようにしました。以下はすべて正常に動作します。
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
QVariant ではなく、JavaScript の GetParent が実際のタイプ A オブジェクトとして認識されるようにする方法はありますか?