首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt QJSEngine导入js文件

Qt QJSEngine导入js文件
EN

Stack Overflow用户
提问于 2016-06-27 14:55:36
回答 1查看 2.3K关注 0票数 3

是否可以在QJSEngine (QT5.6)中导入javascript文件?

示例1:

plainTextEdit文本:

代码语言:javascript
复制
.import "./jsimport.js" as Test
var x = Test.y;
console.log(x);

c++:

代码语言:javascript
复制
void MainWindow::on_pushButton_clicked()
{
    QJSEngine engine;
    engine.installExtensions(QJSEngine::AllExtensions);

    QJSValue result = engine.evaluate(ui->plainTextEdit->toPlainText());
    qDebug() << "isError:" << result.isError();
    qDebug() << "resultString:" << result.toString();
    if(result.hasProperty("lineNumber"))
        qDebug() << "property lineNumber:" << result.property("lineNumber").toInt();
}

jsimport.js文件中的文本:

代码语言:javascript
复制
var y = 42;

结果:

代码语言:javascript
复制
isError: true
resultString: "ReferenceError: Test is not defined"
property lineNumber: 2

示例2:

PlainTextEdit文本:

代码语言:javascript
复制
.import "./jsimport.js"

相同c++码

结果:

代码语言:javascript
复制
isError: true
resultString: "SyntaxError: File import requires a qualifier"
property lineNumber: 1

由于最后一个错误,导入似乎有一些功能。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-01 05:49:59

.import语句不适用于QJSEngine。QJSEngine只是一个简单的解释器,如果您想拥有某种“导入”功能,您可以切换到QQmlEngine,它构建在QJSEngine:http://doc.qt.io/qt-5/qtqml-syntax-imports.html#qml-import-path之上。

使用QJSEngine,您基本上需要手动填充js全局对象(而QtCreator sintax凭据将无法识别跨不同文件使用的语句)。

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

https://stackoverflow.com/questions/38057170

复制
相关文章

相似问题

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