首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个应用程序中有多个QJSEngine实例?

一个应用程序中有多个QJSEngine实例?
EN

Stack Overflow用户
提问于 2019-06-27 09:05:25
回答 1查看 245关注 0票数 2

一个C++/Qt5应用程序拥有多个独立的JavaScript引擎实例是正常的吗?在我的应用程序中,我有几个QObject继承的对象作为独立的数据处理单元。在每个脚本中,我都希望能够启动JS脚本,并且我希望这些脚本的上下文能够独立于这些单元。最简单的想法是让每个单元都有自己的QJSEngine实例。一个简单的测试表明,如果我在同一个应用程序中创建了两个引擎,并在其中一个程序中设置了一个自定义全局属性,那么第二个引擎不知道这个属性,这正是我想要的。但是,并不明显的是,QJSEngine的所有实例都没有一些通用的全局状态属性。在官方的Qt文档中,似乎从未提到过多个实例的问题。这是否足以得出结论:拥有多个实例不会造成任何问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-28 09:52:30

Qt文档通常是显式的,因此如果禁止创建2 QJSEngine,那么它将写入文档中,并且在运行时会出现警告或断言失败。

例如,如果尝试创建2个QCoreApplication实例,则最终会出现以下错误:

代码语言:javascript
复制
ASSERT failure in QCoreApplication: "there should be only one application object", file kernel\qcoreapplication.cpp, line 792

由于QJSEngine没有这样的通知/警告/断言,所以创建多个实例应该是完全安全的。

如果您想要另一个提示,这是允许的,您可以查看QQuickWidget。如果需要,这个小部件将创建自己的QQmlEngine (即QJSEngine),而不管是否存在任何其他QJSEngineQQmlEngine实例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56787599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档