【问题标题】:Qt (C++): Get QProcess stdout and stderr separatelyQt (C++):分别获取 QProcess stdout 和 stderr
【发布时间】:2021-12-04 02:58:59
【问题描述】:

我想获得 QProcess 的标准错误(理想情况下作为 QIODevice),但我不知道如何。另一个线程正在使用 QProcess 从 QIODevice 继承的方法从 stdout 读取,因此 QProcess::MergedChannelsQProcess::setReadChannel(...) 是不可能的。 QProcess::readAllStandardError() 也不理想。

【问题讨论】:

  • 他们有什么不理想的地方?除了那些实际上可能读取并非所有输出的名称。

标签: c++ qt stdout stderr qprocess


【解决方案1】:

您必须将一些插槽连接到 QProcess 的 readyReadStandardError() 信号以通过 QProcess::readAllStandardError() 读取数据并将其存储以进行连接,此外还必须使用 finished() 信号进行结束调用,类似于您为标准输出。

connect(&process, SIGNAL(readyReadStandardError()), this, SLOT(readErrData()));
connect(&process, SIGNAL(finished(int , QProcess::ExitStatus)), 
         this, SLOT(finalizeProcessTask(int , QProcess::ExitStatus)));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多