April 2018
Beginner
714 pages
18h 21m
English
The simplest way to expose a C++ object to JavaScript code is to take advantage of Qt's meta-object system. QJSEngine is able to inspect QObject instances and detect their properties and methods. To use them in scripts, the object has to be visible to the script. The easiest way to make this happen is to add it to the engine's global object. As you remember, all data between the script engine and C++ is exchanged using the QJSValue class, so first we have to obtain a JS value handle for the C++ object:
QJSEngine engine;
QPushButton *button = new QPushButton("Button");
// ...
QJSValue scriptButton = engine.newQObject(button);
engine.globalObject().setProperty("pushButton", scriptButton);
QJSEngine::newQObject() ...
Read now
Unlock full access