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
- C++ template using pointer and non pointer arguments in a QVector
- Using QPointer and QObject::connect with C++11
- qt How to style a QToolBar > QToolButton overflow button?
- Qt - Repeatedly write at beginning of file
- C++ Mongodb driver, not working
- deletion and cleanup of worker thread in Qt crashes
- How to drap item from QTableView to QPushButton?
- get image type from qimage
- C++ QT Getting part from QString
- How to connect a destroyed signal of C++ object from QML?
- How to get shader version from QOpenGLShader?
- Size of Qt QRadioButton able to get smaller, but not larger than default
- error WinSock.h has already been included Boost Windows Qt
- How to call a non-class member function with pointers as parameters with QtConcurrent::run?
- What is the difference between MinGW SEH and MinGW SJLJ?
Related Questions in QT5
- Connecting Signal QML to C++ (Qt5)
- QJSonArray to QString conversion
- QDomDocument toString
- QML Dialog is broken?
- qInstallMessageHandler successful, but sub thread can't see it
- Is there any way to skip macro replacement(During preprocessing) when macro is used as a variable name?
- How to add a column in a table where I can put checkmarks in some cells for further processing?
- Is it possible to deploy a Qt Quick application without Qt Network on OS X?
- Multiple columns in a QTree / QStandardItemModel
- Debug application with self-compiled Qt
- How to display 40 windows with around a hundred animated objects each in Qt Quick?
- setting wrapMode property of Text in ScrollView
- WA_DeleteOnClose delete all members?
- Cannot list device files in Ubuntu/Debian using QDir in Qt5
- Runner::call: socket of context -1 is null
Related Questions in QJSENGINE
- QtScript vs QJSEngine when to use one or another?
- Register inherited QObject's meta object to QJSEngine
- QJSEngine won't evaluate js array correctly
- QJSEngine checkForSyntax function
- Can I retain ownership of QObjects passed to QJSEngine?
- Is it valid to call QJSEngine::newQObject() in a C++ function called by a script?
- QJSEngine: print to console
- QJSEngine, global and script, what is causing the syntax error
- Transition from QtScript to QML/QJSEngine
- How to register types like QList<quint64> in QJSEngine?
- Custom C++ type to QJSEngine: member function return value is always QVariant
- Result of QJSEngine evaluation doesn't contain a function
- QJSEngine cause a crash at exit when having accessed to pointer to C++ object
- Can I change the document method of javascript: hasFocus() to return 'true' all the time?
- Access dynamic property in QJSEngine
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 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.