【问题标题】:How do I get standard output from QJSEngine in Qt 5.12?如何从 Qt 5.12 中的 QJSEngine 获取标准输出?
【发布时间】:2019-02-03 22:51:37
【问题描述】:

我通过调用installExtensions 启用了ConsoleExtension 来调试脚本。 QJSEngine如何获取控制台输出?

【问题讨论】:

  • consloe.log() ... ?
  • 我知道如何在 JavaScript 中打印到标准输出 :)。我不知道如何从 C++ 中读取它。
  • 在 C++ 中阅读是什么意思 .. 控制台日志记录 id 调试工具 ..

标签: qt qjsengine


【解决方案1】:

如果您想将脚本的输出捕获回您的 C++ 程序,最好不要使用ConsoleExtension - 而是公开一个 API 以允许脚本直接调用您的实现以“打印到标准”输出”。

Plasma ScriptEngine 的作用为例 - 它在 globalObject 上公开了一个 print() 方法,脚本可以使用该方法来“打印输出”。在 Plasma 中,它会从 Plasmashell 进程中打印出来并由各种日志记录机制捕获,但您可以使用 print() 函数的输入来做您想做的事情。你的全局对象接口甚至可以模仿console.log()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2018-03-08
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 2020-03-03
    相关资源
    最近更新 更多