首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QtScript输出重定向

QtScript输出重定向
EN

Stack Overflow用户
提问于 2011-01-06 16:17:49
回答 2查看 1.7K关注 0票数 4

当我调用此代码时:

代码语言:javascript
复制
QScriptEngine e;
e.evaluate("print('hello, world!')");

输出文本(来自print方法)被写入主应用程序的终端。

有没有办法将它重定向到自定义的QIODevice?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-20 23:58:32

您可以将print()替换为您自己的实现:

首先,定义一个执行所需操作的C++函数。在本例中,它只是为exposition留空:

代码语言:javascript
复制
QScriptValue myPrint( QScriptContext * ctx, QScriptEngine * eng ) {
    return QScriptValue();
}

然后将该函数安装为新的print()

代码语言:javascript
复制
QScriptEngine e = ...;
e.globalObject().setProperty( "print", e.newFunction( &myPrint ) );
e.evaluate( "print(21);" ); // prints nothing
票数 5
EN

Stack Overflow用户

发布于 2011-01-07 04:11:03

输出文本转到stdout,因此您需要重定向stdout。有关想法,请参阅此question。最好的想法:使用reopen重定向到一个文件*,或者(更好的)使用rdbuf将stdout重定向到从std::ostream派生的其他流,然后你可以使用QFile.open(1,...)-

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

https://stackoverflow.com/questions/4612999

复制
相关文章

相似问题

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