gpt4 book ai didi

c++ - 启动 QProcess 并一次读取其输出一行

转载 作者:太空狗 更新时间:2023-10-29 21:22:53 24 4
gpt4 key购买 nike

在 Qt 中一次一行读取子进程输出的首选方式是什么?

我尝试将 QProcess 信号 readyReadStandardOutput 连接到调用 QProcess 方法 readLine 的函数。

最佳答案

首选方式是异步方式,使用 QIODevice 发出的信号。你的做法是正确的。确保您阅读了插槽中的所有可用行:

process->setReadChannel(QProcess::StandardOutput);
while (process->canReadLine()) {
QString line = QString::fromLocal8bit(process->readLine());
...
}

另请记住,一旦您阅读了某些内容,就无法再次阅读。 QIODevice 的信号需要小心使用 - 您不能将任意数量的消费者连接到 readyRead 信号并在每个消费者中执行读取。它不会像您预期的那样工作。如果第一个读取器读取了所有数据,则后续读取器将无法再次读取。

关于c++ - 启动 QProcess 并一次读取其输出一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19669514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com