[Interest] QJSValue as parameter to Q_INVOKABLE

Gunnar Sletta gunnar.sletta at jolla.com
Wed Apr 30 08:27:21 CEST 2014


Your QObject needs to have Q_OBJECT in it, but aside from that that, it looks sane enough.

I've been using the same approach in  https://codereview.qt-project.org/#change,72338 and it works like a charm there.

cheers,
Gunnar

On 29 Apr 2014, at 16:03, Gav Wood <qtinterest at gavwood.com> wrote:

> Hi,
> 
> I'd like to expose an API within a QJSEngine JavaScript environment
> for an asynchronous callback.
> 
> Thus I want to expose a method "regCallback":
> 
> foo.regCallback(function() { alert("Hello"); })
> 
> and allow C++ to call that function at some later point. The function
> is exposed as a QJSValue, thus I'd expect a class Foo to look
> something like this:
> 
> class Foo: public QObject
> {
> public:
>  Q_INVOKABLE void regCallback(QJSValue someFunction) { m_f = someFunction; }
>  void doCallback() { m_f.call(); }
> 
> private:
>  QJSValue m_f;
> };
> 
> However this doesn't work; regCallback never gets called. Is there
> some other way to achieve this API?
> 
> Gav.
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest




More information about the Interest mailing list