如何从 Qt 5.12 中的 QJSEngine 获取标准输出?
Posted
技术标签:
【中文标题】如何从 Qt 5.12 中的 QJSEngine 获取标准输出?【英文标题】:How do I get standard output from QJSEngine in Qt 5.12? 【发布时间】:2019-02-03 22:51:37 【问题描述】:我通过调用installExtensions
启用了ConsoleExtension
来调试脚本。 QJSEngine如何获取控制台输出?
【问题讨论】:
consloe.log()
... ?
我知道如何在 javascript 中打印到标准输出 :)。我不知道如何从 C++ 中读取它。
在 C++ 中阅读是什么意思 .. 控制台日志记录 id 调试工具 ..
【参考方案1】:
如果您想将脚本的输出捕获回您的 C++ 程序,最好不要使用ConsoleExtension
- 而是公开一个 API 以允许脚本直接调用您的实现以“打印到标准”输出”。
以 Plasma ScriptEngine 的作用为例 - 它在 globalObject
上公开了一个 print()
方法,脚本可以使用该方法来“打印输出”。在 Plasma 中,它会从 Plasmashell 进程中打印出来并由各种日志记录机制捕获,但您可以使用 print()
函数的输入来做您想做的事情。你的全局对象接口甚至可以模仿console.log()
。
【讨论】:
以上是关于如何从 Qt 5.12 中的 QJSEngine 获取标准输出?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 QJSEngine 中注册 QList<quint64> 之类的类型?