QML: Bir imzası ile bir C++ üye işlev için bir JS nesnesi (harita) geçmesine çalışıyorum
Q_INVOKABLE virtual bool generate(QObject* context);
a.generate({foo: "bar"});
yöntemi kullanarak üye işlev C++ JS nesnesi geçirmeden çağrılır (kesme noktası aracılığıyla algılanır), ancak geçirilen context
parametresi NULL
'dur. the documentation JS nesneleri QVariantMap
olarak geçilecek bahseder beri, imzayı
Q_INVOKABLE virtual bool generate(QVariantMap* context);
kullanarak denedim ama bu MOC sırasında başarısız oldu. yöntem
Q_INVOKABLE virtual bool generate(QVariantMap& context);
neden olur kullanarak (hata mesajı ": QVariantMap & Bilinmeyen bir yöntem parametresi türü") QML tarafından çalışma zamanında bulunabilir değil.
Belgelerin, yalnızca başka bir yönde değil, C++ - QML arasında bir QVariantMap
geçirilmesi örneği vardır.
Q_INVOKABLE
yerine public slot
kullanmak, tam olarak aynı davranışı ve hataları gösterir.
Teşekkür ederim, bu işe yarar. – pmf