我正在使用QT程序测试在Ubuntu中运行一些后台进程。
我知道如何在完成该过程后显示Qprocess结果细节。(使用QbyteArray)。
当进程在后台运行时,是否有任何方法可以显示Qprocess进度。(即在消息框或任何其他此类信息子窗口中。)
答案 0 :(得分:1)
您可以异步读取过程输出。为此,您应该将QProcess::readyReadStandardOutput()
或QProcess::readyReadStandardError()
信号连接到您的广告位。
QString program = "ping";
QStringList arguments;
arguments << "google.com";
myProcess = new QProcess(parent);
connect(myProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readyR()));
myProcess->start(program, arguments);
在您的插槽中,您可以从流程写入的标准输出中读取数据并执行您想要的操作。
void YourClass::readyR()
{
qDebug()<<myProcess->readAllStandardOutput();
}