Is it normal for a single C++/Qt5 app to have multiple independent instances of JavaScript engine? In my app, I have several QObject-inherited objects which act as independent data-processing units. In each of them, I want to be able to launch JS scripts, and I want contexts of those scripts to be independent among these units. The simplest idea is to make each of the units to have its own instance of QJSEngine. A simple test shows that if I create two engines in the same app and set a custom global property in one of them, this property is not known to the second engine, which is what I want. But still it is not obvious that there are no some global state-properties which are common to all instances of QJSEngine. The issue of multiple instances seems to be never mentioned in the official Qt docs. Is that sufficient to conclude that having multiple instances poses no problems?
Multiple instances of QJSEngine within a single app?
368 Views Asked by Maximko At
1
There are 1 best solutions below
Related Questions in QT
- qt c++ fonction converting adress to coordinates (longitude, latitude)
- Qml table and chart using python
- Qt: running callback in the main thread from the worker thread
- i have installed qt version 6.0.3 and this error QMYSQL driver not loaded displaying again and again
- Frameless Qt + WinAPI maximized window size is bigger than the availableGeometry()
- new window with c++ qt
- How to get scaling from transformation matrix
- How to build just Qt core libraries from Qt sources
- doxyqml not documenting qml files properly
- Incorrect assignment from a QStringList to a char * array
- How to make QT Chart size larger than widget size?
- Queued async operations with QtConcurrent interfere QImage from freed
- Questions about qt5 dynamic link library
- how to document QML files inside C++ project?
- How do I keep my screen contents centered and also have a scrollbar in QT?
Related Questions in QT5
- module "QtNetwork" is not installed
- Qt Quick QML Unit Test linkage module not found/custom component 'not a type' error with createTemporaryQmlObject
- Securing/Hardening QtRemoteObjects server
- QCustomPlot scaling and re-positioning of all layers of the graph using the mouse
- Error installing Qt5 on Raspberry Pi 4 - Bullseye "Package qt5-default has no installation candidate"
- QTabWidget: Unable to create a label on the tabbar to display tab name
- Facing error in no matching function for call in qdbusabstractinterface
- Qt Addin: Attempt to add newer Qt version "There's no Qt version assigned to project"
- Linux QT-based applications are core dumping with IOT instruction (core dumped)
- Qt 5 project won't compile in Qt 6 despite core5compat and QT_DISABLE_DEPRECATED_BEFORE
- What is the IID in Q_PLUGIN_METADATA(IID "...") and why do I need it
- How to resolve Yocto build error for Glib-2.0 for Qt?
- How could I make a Expand All / Collapse All function for my custom QML TreeView?
- QGraphicsView and QSplitter: collapsing and unfolding area does not restore image
- Get undefined for receiving a signal with parameter from C++ in QML
Related Questions in QJSENGINE
- QJSValue call Array.prototype.push not working
- QJSEngine does not know how to handle Qt basic types
- C++ QT Call C++ function in QJSEngine
- Register inherited QObject's meta object to QJSEngine
- Is it valid to call QJSEngine::newQObject() in a C++ function called by a script?
- Can I retain ownership of QObjects passed to QJSEngine?
- Register custom type in Qt with QJsEngine
- QJSEngine - exposing classes and throwing errors
- QJSEngine, global and script, what is causing the syntax error
- Does using QJSEngine have security implications for my application?
- How to register an enum type to QJSEngine to be used from the scripting environment?
- How javascript callstack, queue handles http request inside promise
- How to register types like QList<quint64> in QJSEngine?
- How to expose enum not owned by QObject to QJSEngine?
- With deprecation of QScriptEngine, how do we port the QScriptClass-related code?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Qt documentation are generally explicit, so if it would be forbidden to create 2
QJSEngineit would be written in the documentation and you would have a warning or an assert failure at run-time.For instance, if you try to create 2
QCoreApplicationinstances, you end up with a crash with the error:Since there are no such notice/warning/assert for
QJSEngine, it should be perfectly safe to create multiple instances.If you want yet another tip that this is allowed, you can look at
QQuickWidget. This widget will create its ownQQmlEngine(i.e.QJSEngine) if needed, regardless of the existence of any otherQJSEngineorQQmlEngineinstance.